2009-07-16 6 views
1
을 만듭니다 저장 프로 시저를 작성하는

사람이 어떻게 C에서 20 개의 데이터베이스를 생성하는 저장 프로 시저를 작성하는 방법을 말해 줄래 : 다음 루프에서 데이터베이스 생성을위한의 StoredProcedure를 넣어 경우 \ 테스트 \방법 (20) 데이터베이스

테스트로 첫 번째 db를 만들면 루프가 sp.but를 호출하여 테스트 알레고리를 표시합니다. 어떻게 변수를 연결하여 내가 test1 test2 test3을 만들 것인지 모르겠다. test20

어떻게 할 수 있을까? 나는 SQL 서버에 익숙하지 않다. sp.

답변

0

프로덕션으로 간주 될 수있는 모든 작업에서이 작업을 수행하지 말 것을 강력히 권장합니다. 그렇지만 그렇게 생각한다면 sp_execsql ('create database xxx') 문을 사용하여 데이터베이스 생성 문을 수행 할 수 있습니다.

그래서 ... 왜 다시해야합니까? ;-)

1

데이터베이스가 이미 존재하는지 테스트하려면 TRANSACT-SQL & IF EXISTS를 사용하십시오.

+0

심지어 DB_ID ... – gbn

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 
관련 문제