求建库存储过程 希望以存储过程建立300个数据库 名字是db001,db002.....db300每个库用同样的多张表(随意两张简单表吧)如何写这个过程?问一下如果是sqlserver 2000 个人版 支持那么多库吗?企业版呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if object_id('spCreateDB') is not null drop proc spCreateDBgo----创建存储过程create proc spCreateDB @dbnumber int /*参数为要创建的数据库数量*/asdeclare @sql varchar(8000)declare @i intset @i = 1while @i <= @dbnumberbegin set @sql = 'CREATE DATABASE mytest_' + cast(@i as varchar(5)) + ' ON ( NAME = mytest_dat_' + cast(@i as varchar(5)) + ',FILENAME = ''d:\mytest_' + cast(@i as varchar(5)) + '.mdf''' + ',SIZE = 4,MAXSIZE = 10,FILEGROWTH = 1 )' --print @sql EXEC(@sql) /*创建数据库*/ set @sql = 'create table mytest_' + cast(@i as varchar(5)) + '.dbo.test1(id int identity,name varchar(50)) create table mytest_' + cast(@i as varchar(5)) + '.dbo.test2(id int identity,name varchar(50))' --print @sql EXEC(@sql) /*创建表*/ set @i = @i + 1endgo----测试创建3个数据库exec spCreateDB 3drop proc spCreateDB----显示结果/*CREATE DATABASE 进程正在磁盘 'mytest_dat_1' 上分配 4.00 MB 的空间。CREATE DATABASE 进程正在磁盘 'mytest_1_log' 上分配 1.00 MB 的空间。CREATE DATABASE 进程正在磁盘 'mytest_dat_2' 上分配 4.00 MB 的空间。CREATE DATABASE 进程正在磁盘 'mytest_2_log' 上分配 1.00 MB 的空间。CREATE DATABASE 进程正在磁盘 'mytest_dat_3' 上分配 4.00 MB 的空间。CREATE DATABASE 进程正在磁盘 'mytest_3_log' 上分配 1.00 MB 的空间。*/ 我的表名是这样的@mytable,如何查询和插入数据呀? 邹建大哥,请问sql server数据库恢复问题! 中文查询遇到的问题,请看一下,谢谢! 呵呵,不知道这个语句的执行效率怎么样,我第一次写链接查询。 这随机函数怎么会这样? 是否有备份表的语句???? 在自定义函数中取得系统日期,getdate()为什么不行啊? 如何调用具有datetime类型参数的存储过程? 高分请教!速回复,谢谢!!!(急!) vc与access数据库开发中的重大难题!多方求教均无果!请高手赐教! 怎样得到这样的结余数?? SQL server管理高手请来救命,关于恢复我的单mdf文件的办法!
drop proc spCreateDB
go
----创建存储过程
create proc spCreateDB @dbnumber int /*参数为要创建的数据库数量*/
as
declare @sql varchar(8000)
declare @i int
set @i = 1
while @i <= @dbnumber
begin
set @sql =
'CREATE DATABASE mytest_' + cast(@i as varchar(5)) +
' ON ( NAME = mytest_dat_' + cast(@i as varchar(5)) +
',FILENAME = ''d:\mytest_' + cast(@i as varchar(5)) + '.mdf''' +
',SIZE = 4,MAXSIZE = 10,FILEGROWTH = 1 )'
--print @sql
EXEC(@sql) /*创建数据库*/
set @sql =
'create table mytest_' + cast(@i as varchar(5)) + '.dbo.test1(id int identity,name varchar(50))
create table mytest_' + cast(@i as varchar(5)) + '.dbo.test2(id int identity,name varchar(50))'
--print @sql
EXEC(@sql) /*创建表*/
set @i = @i + 1
end
go
----测试创建3个数据库
exec spCreateDB 3
drop proc spCreateDB
----显示结果
/*
CREATE DATABASE 进程正在磁盘 'mytest_dat_1' 上分配 4.00 MB 的空间。
CREATE DATABASE 进程正在磁盘 'mytest_1_log' 上分配 1.00 MB 的空间。
CREATE DATABASE 进程正在磁盘 'mytest_dat_2' 上分配 4.00 MB 的空间。
CREATE DATABASE 进程正在磁盘 'mytest_2_log' 上分配 1.00 MB 的空间。
CREATE DATABASE 进程正在磁盘 'mytest_dat_3' 上分配 4.00 MB 的空间。
CREATE DATABASE 进程正在磁盘 'mytest_3_log' 上分配 1.00 MB 的空间。
*/