按上面的方法生成你的数据库脚本,注意不要选择"包含建库脚本",并且在脚本中去掉创建用户信息表的语句.然后写类似下面的触发器,完成创建数据库和调用上述脚本生成数据库结构的工作:create trigger tr_insert_用户信息 on 用户信息表 for insert as declare @s varchar(8000) declare tb cursor local for select 'create database ['+用户名+'] exec master..xp_cmdshell ''isql /U"sa" /P"" /i"c:\.sql脚本"''' from inserted a where not exists( --过滤掉已经建好的库 select * from master..sysdatabases where name=a.用户名) fetch tb into @s while @@fetch_status=0 begin exec(@s) fetch tb into @s end close tb deallocate tb
to zjcxc(邹建): 谢了,因为我现在要做的是相当是自助建站类的系统, 按照公司的要求,它可以实现不太电子商务及其它的比小型OA, 因为涉及的表较多,我想为每一个用户,建立一个数据库。这样管理起来会方便点。 不知你的看法如何呢?
to zjcxc(邹建): 用户之间没有联系,如果用一个数据库,则用户注册后,会生成以用户名加上其它字符结合的不同数据表,放在程式里实现好还是放在数据库现实好呢?如果放在数据库实现,该怎用实现呢?我是搞web开发的,对sql server不太熟悉,麻烦指教一下。
to xuyg151504(听潮): 如果处理的数据太多,这个有必要吧! 我在一家电子商务网做过, 他就是为每一个注册用户创建一个数据。
sql200企业管理器
--右键要导出的数据库
--所有任务
--生成SQL脚本
--<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题"选上
--<设置格式>里,将"包含扩展属性",选上
--<选项>中,将"表脚本选项"中的内容全部选择上
--<选项>中,"安全性选项"是决定是否要包含创建数据库及用户权限等的设置,根据你的需要选择
--其他所有的选项保持默认值
--然后确定,将其保存成一个.sql文件注意:如果只选择部分表,是不能生成表之间的关系的然后在需要生成数据库的地方,执行上面这个脚本就行了.有一点需要说明,如果你生成脚本的时候包含了建库的脚本,则执行脚本前不需要事先建库,否则你需要先建一个新库,然后在这个新库中执行上面的脚本来生成数据库对象
for insert
as
declare @s varchar(8000)
declare tb cursor local for
select 'create database ['+用户名+']
exec master..xp_cmdshell ''isql /U"sa" /P"" /i"c:\.sql脚本"'''
from inserted a
where not exists( --过滤掉已经建好的库
select * from master..sysdatabases
where name=a.用户名)
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
谢了,因为我现在要做的是相当是自助建站类的系统,
按照公司的要求,它可以实现不太电子商务及其它的比小型OA,
因为涉及的表较多,我想为每一个用户,建立一个数据库。这样管理起来会方便点。
不知你的看法如何呢?
用户之间没有联系,如果用一个数据库,则用户注册后,会生成以用户名加上其它字符结合的不同数据表,放在程式里实现好还是放在数据库现实好呢?如果放在数据库实现,该怎用实现呢?我是搞web开发的,对sql server不太熟悉,麻烦指教一下。
如果处理的数据太多,这个有必要吧!
我在一家电子商务网做过,
他就是为每一个注册用户创建一个数据。