2011-03-05 110 views

回答

3

正如bitxwise說,你需要動態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

4

下面的查詢塊可能會有所幫助。

DECLARE @Query VARCHAR(MAX)='' 
DECLARE @DbName VARCHAR(400) = 'Db1' 
DECLARE @DbFilePath VARCHAR(400) = 'E:\Database\' 
SET @Query = @Query + 'CREATE DATABASE '[email protected] +' ON PRIMARY ' 
SET @Query = @Query + '(NAME = '''[email protected] +''', FILENAME = '''[email protected][email protected] +'.mdf'' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB) ' 
SET @Query = @Query + ' LOG ON ' 
SET @Query = @Query + '(NAME = '''[email protected] +'_log'', FILENAME = '''[email protected][email protected] +'_log.ldf'' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)' 
print @query 
exec(@query) 
相關問題