把你的数据库结构生成脚本.然后在触发器中,用isql调用执行来生成数据库.

解决方案 »

  1.   

    --生成数据库脚本
    sql200企业管理器
      --右键要导出的数据库
      --所有任务
      --生成SQL脚本
      --<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题"选上
      --<设置格式>里,将"包含扩展属性",选上
      --<选项>中,将"表脚本选项"中的内容全部选择上
      --<选项>中,"安全性选项"是决定是否要包含创建数据库及用户权限等的设置,根据你的需要选择
      --其他所有的选项保持默认值
      --然后确定,将其保存成一个.sql文件注意:如果只选择部分表,是不能生成表之间的关系的然后在需要生成数据库的地方,执行上面这个脚本就行了.有一点需要说明,如果你生成脚本的时候包含了建库的脚本,则执行脚本前不需要事先建库,否则你需要先建一个新库,然后在这个新库中执行上面的脚本来生成数据库对象
      

  2.   

    按上面的方法生成你的数据库脚本,注意不要选择"包含建库脚本",并且在脚本中去掉创建用户信息表的语句.然后写类似下面的触发器,完成创建数据库和调用上述脚本生成数据库结构的工作: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
      

  3.   

    to  zjcxc(邹建):
    谢了,因为我现在要做的是相当是自助建站类的系统,
    按照公司的要求,它可以实现不太电子商务及其它的比小型OA,
    因为涉及的表较多,我想为每一个用户,建立一个数据库。这样管理起来会方便点。
    不知你的看法如何呢?
      

  4.   

    to zjcxc(邹建):
    用户之间没有联系,如果用一个数据库,则用户注册后,会生成以用户名加上其它字符结合的不同数据表,放在程式里实现好还是放在数据库现实好呢?如果放在数据库实现,该怎用实现呢?我是搞web开发的,对sql server不太熟悉,麻烦指教一下。
      

  5.   

    to xuyg151504(听潮):
    如果处理的数据太多,这个有必要吧!
    我在一家电子商务网做过,
    他就是为每一个注册用户创建一个数据。