2009-07-16 4 views
1

Quelqu'un peut-il me dire comment écrire une procédure stockée qui crée 20 bases de données dans c: \ test \Comment écrire une procédure stockée qui permettra de créer 20 bases de données

si je mets un StoredProcedure pour la création de bases de données dans une boucle puis Si je crée un premier db en tant que test à nouveau, la boucle appellera sp, mais elle montre le test ici. Je ne sais pas comment concaténer une variable à cela afin que je vais créer test1 test2 test3 .... test20

Comment puis-je faire cela Une idée .. Je n'ai aucune idée de la concaténation Je suis nouveau à SQL Server sp.

Répondre

0

Je vous déconseille vivement de le faire dans tout ce qui pourrait être considéré comme une production ... Mais vous POUVEZ, si vous le souhaitez, faire une instruction sp_execsql ('create database xxx') pour faire vos instructions de création de base de données.

Alors ... Pourquoi avez-vous besoin de faire cela à nouveau? ;-)

1

Utilisez TRANSACT-SQL & SI EXISTS, pour tester si une base de données existe déjà.

+0

Ou même 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 
Questions connexes