Last active
December 20, 2015 08:59
-
-
Save justingarrick/6104608 to your computer and use it in GitHub Desktop.
Generic SQL Server "create DB" script that uses the same defaults as "New Database" in SSMS. Locates data directory based on master.mdf.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
USE [master] | |
DECLARE @dbName NVARCHAR(MAX) | |
SET @dbName ='Derp' -- Your DB name here | |
DECLARE @sql NVARCHAR(MAX) | |
DECLARE @template NVARCHAR(MAX) | |
DECLARE @dataDir NVARCHAR(MAX) | |
SET @dataDir = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1) | |
SET @template = N'CREATE DATABASE [{dbName}] CONTAINMENT = NONE ON PRIMARY (NAME = N''{dbName}'', FILENAME = N''{dataDir}{dbName}.mdf'', SIZE = 4096KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB) LOG ON (NAME = N''{dbName}_log'', FILENAME = N''{dataDir}{dbName}_log.ldf'', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10%)' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
SET @sql = REPLACE(@sql, '{dataDir}', @dataDir) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET COMPATIBILITY_LEVEL = 110' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) begin | |
SET @template = N'[{dbName}].[dbo].[sp_fulltext_database] @action = ''enable''' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
end | |
SET @template = N'ALTER DATABASE [{dbName}] SET ANSI_NULL_DEFAULT OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET ANSI_NULLS OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET ANSI_PADDING OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET ANSI_WARNINGS OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET ARITHABORT OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET AUTO_CLOSE OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET AUTO_CREATE_STATISTICS ON' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET AUTO_SHRINK OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET AUTO_UPDATE_STATISTICS ON' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET CURSOR_CLOSE_ON_COMMIT OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET CURSOR_DEFAULT GLOBAL' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET CONCAT_NULL_YIELDS_NULL OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET NUMERIC_ROUNDABORT OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET QUOTED_IDENTIFIER OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET RECURSIVE_TRIGGERS OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET DISABLE_BROKER' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET AUTO_UPDATE_STATISTICS_ASYNC OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET DATE_CORRELATION_OPTIMIZATION OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET TRUSTWORTHY OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET ALLOW_SNAPSHOT_ISOLATION OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET PARAMETERIZATION SIMPLE' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET READ_COMMITTED_SNAPSHOT OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET HONOR_BROKER_PRIORITY OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET RECOVERY FULL' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET MULTI_USER' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET PAGE_VERIFY CHECKSUM' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET DB_CHAINING OFF' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF)' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET TARGET_RECOVERY_TIME = 0 SECONDS' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
SET @template = N'ALTER DATABASE [{dbName}] SET READ_WRITE' | |
SET @sql = REPLACE(@template, '{dbName}', @dbName) | |
PRINT @sql | |
EXECUTE (@sql) | |
GO |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment