誰能告訴我怎麼寫,在C創建20個數據庫的存儲過程:\測試\如何寫一個存儲過程,將創建20個數據庫
,如果我把數據庫創建的StoredProcedure在一個循環,然後
如果我創建第一個數據庫再次測試循環將調用sp.but它顯示測試alredy那裏。我不知道如何連接一個變量,以便我將創建test1 test2 test3 .... test20
我該怎麼做任何想法..我不知道串聯我是新來的SQL Server SP。
誰能告訴我怎麼寫,在C創建20個數據庫的存儲過程:\測試\如何寫一個存儲過程,將創建20個數據庫
,如果我把數據庫創建的StoredProcedure在一個循環,然後
如果我創建第一個數據庫再次測試循環將調用sp.but它顯示測試alredy那裏。我不知道如何連接一個變量,以便我將創建test1 test2 test3 .... test20
我該怎麼做任何想法..我不知道串聯我是新來的SQL Server SP。
我強烈建議不要在任何會被認爲是生產的任何事情中這樣做......但是,如果您傾向於這樣做,可以使用sp_execsql('create database xxx')語句來執行您的數據庫創建語句。
那麼...爲什麼你需要再次這樣做? ;-)
使用TRANSACT-SQL &如果EXISTS,測試數據庫是否已經存在。
CREATE PROC dbo.Foo
AS
SET NOCOUNT ON
DECLARE @i int, @stem varchar(20), @db varchar(20), @sql varchar(1000)
SELECT @i = 1, @stem = 'Test'
WHILE @i < 20
BEGIN
SELECT @db = @stem + CAST(@i AS varchar(2))
IF DB_ID(@db) IS NULL
SELECT @SQL = 'CREATE DATABASE ' + @db +
' ON (NAME = ' + @db + '_Data, FILENAME = ''C:\Test\' + @db + '.mdf'')' +
' LOG ON (NAME = ' + @db + '_Log, FILENAME = ''C:\Test\' + @db + '.mdf'')'
EXEC(@sql)
SELECT @i = @i + 1
END
GO
甚至DB_ID ... – gbn 2009-07-16 11:50:47