Sql server 如何编写将创建20个数据库的存储过程
谁能告诉我如何编写一个存储过程,在c:\test中创建20个数据库\ 如果我将用于创建数据库的storedprocedure放在一个循环中,那么 若我创建第一个db作为再次测试,循环将调用sp,但它在那个里显示test alredy。我不知道如何将一个变量连接到它,以便创建test1 test2 test3…test20Sql server 如何编写将创建20个数据库的存储过程,sql-server,stored-procedures,Sql Server,Stored Procedures,谁能告诉我如何编写一个存储过程,在c:\test中创建20个数据库\ 如果我将用于创建数据库的storedprocedure放在一个循环中,那么 若我创建第一个db作为再次测试,循环将调用sp,但它在那个里显示test alredy。我不知道如何将一个变量连接到它,以便创建test1 test2 test3…test20 我怎么能做到这一点呢?任何想法..我不知道连接我是SQL Server sp的新手。我强烈建议不要在任何被视为生产的情况下这样做。。。但是,如果您愿意,可以使用sp_execs
我怎么能做到这一点呢?任何想法..我不知道连接我是SQL Server sp的新手。我强烈建议不要在任何被视为生产的情况下这样做。。。但是,如果您愿意,可以使用sp_execsql('createdatabase xxx')语句来创建数据库
所以。。。你为什么还要这样做?;-) 我强烈建议不要在任何被认为是生产的事情上这样做。。。但是,如果您愿意,可以使用sp_execsql('createdatabase xxx')语句来创建数据库
所以。。。你为什么还要这样做?;-) 使用TRANSACT-SQL&如果存在,则测试数据库是否已经存在。使用TRANSACT-SQL&如果存在,则测试数据库是否已经存在。
创建PROC dbo.Foo
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
作为
不计较
声明@i int、@stem varchar(20)、@db varchar(20)、@sql varchar(1000)
选择@i=1,@stem='Test'
而@i<20
开始
选择@db=@stem+CAST(@i作为varchar(2))
如果DB_ID(@DB)为空
选择@SQL='CREATE DATABASE'+@db+
'ON(NAME='+@db+'\u数据,FILENAME=''C:\Test\'+@db+'.mdf'')+
'登录(名称='+@db+'\u日志,文件名=''C:\Test\'+@db+'.mdf'')
EXEC(@sql)
选择@i=@i+1
结束
去
创建过程dbo.Foo
作为
不计较
声明@i int、@stem varchar(20)、@db varchar(20)、@sql varchar(1000)
选择@i=1,@stem='Test'
而@i<20
开始
选择@db=@stem+CAST(@i作为varchar(2))
如果DB_ID(@DB)为空
选择@SQL='CREATE DATABASE'+@db+
'ON(NAME='+@db+'\u数据,FILENAME=''C:\Test\'+@db+'.mdf'')+
'登录(名称='+@db+'\u日志,文件名=''C:\Test\'+@db+'.mdf'')
EXEC(@sql)
选择@i=@i+1
结束
去