2009-07-16 22 views
1

誰能告訴我怎麼寫,在C創建20個數據庫的存儲過程:\測試\如何寫一個存儲過程,將創建20個數據庫

,如果我把數據庫創建的StoredProcedure在一個循環,然後

如果我創建第一個數據庫再次測試循環將調用sp.but它顯示測試alredy那裏。我不知道如何連接一個變量,以便我將創建test1 test2 test3 .... test20

我該怎麼做任何想法..我不知道串聯我是新來的SQL Server SP。

回答

0

我強烈建議不要在任何會被認爲是生產的任何事情中這樣做......但是,如果您傾向於這樣做,可以使用sp_execsql('create database xxx')語句來執行您的數據庫創建語句。

那麼...爲什麼你需要再次這樣做? ;-)

1

使用TRANSACT-SQL &如果EXISTS,測試數據庫是否已經存在。

+0

甚至DB_ID ... – gbn 2009-07-16 11:50:47

4
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 
相關問題