Создать базу данных с динамическим именем базы данных в SQL Server 2005 - PullRequest
1 голос
/ 05 марта 2011

Создание базы данных в SQL Server 2005 с использованием хранимой процедуры, но имя базы данных передается в качестве параметра

Ответы [ 2 ]

4 голосов
/ 11 октября 2011

Ниже может быть полезен блок запроса.

DECLARE @Query VARCHAR(MAX)=''
DECLARE @DbName VARCHAR(400) = 'Db1'
DECLARE @DbFilePath VARCHAR(400) = 'E:\Database\'
SET @Query = @Query + 'CREATE DATABASE '+@DbName +' ON  PRIMARY '
SET @Query = @Query + '( NAME = '''+@DbName +''', FILENAME = '''+@DbFilePath+@DbName +'.mdf'' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) '
SET @Query = @Query + ' LOG ON '
SET @Query = @Query + '( NAME = '''+@DbName +'_log'', FILENAME = '''+@DbFilePath+@DbName +'_log.ldf'' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)'
print @query
exec(@query)
3 голосов
/ 05 марта 2011

Как сказал побитовый, вам понадобится динамический SQL

create proc createdb @dbname sysname
as
declare @sql nvarchar(max)
set @sql = 'create database ' + QUOTENAME(@dbname)
exec (@sql)

Это просто самый простой оператор CREATE DATABASE.Обычно в производственной среде вы не хотите иметь такой процесс, и даже если вы это сделаете - вы бы указали рост, начальный размер, местоположение и т. Д.

Но вот ссылка: http://msdn.microsoft.com/en-us/library/ms176061(v=SQL.90).aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...