26

I've generated a script of a database in SQL Server 2008. The generated script has the hardcoded path of where the database would be created. I don't want this path to be hardcoded, I want this path to use the default of the database engine the script is running on.

Here is the small portion of the script:

CREATE DATABASE [POS] ON  PRIMARY 
( NAME = N'POS', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS.mdf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'POS_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

The path C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS.mdf might not exist on all computers that's why I want it to be chosen by the database engine

0

2 Answers 2

37

Simply create the database and then adjust all the needed properties directly in files

CREATE DATABASE [POS] 
GO
ALTER DATABASE POS MODIFY FILE 
( NAME = N'POS' , SIZE = 3048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
GO
ALTER DATABASE POS MODIFY FILE 
( NAME = N'POS_log' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
Sign up to request clarification or add additional context in comments.

1 Comment

yeah, I was already trying to choose it as best but stackoverflow was not allowing me to choose that early
16

Why don't use just:

CREATE DATABASE [POS];

This will create the database with all the default settings (including paths). You may alter any setting you like later on.

1 Comment

It will use POS and POS_log as defaults. In my case at least.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.