回 帖 发 新 帖 刷新版面

主题:关于动态建库问题

我现在用VB+SQL做会计系统软件,因要在运行过程中新建会计套帐(我为每一套帐设一库,库名中含序号以示区分),可不可以用调用存储过程形式生成新库及对应新表。我试过报语法错。
create proc sp_tzdb @tzdb varchar(6),@tzmf varchar(40)
as
create database @tzdb
on
(name=@tzdb,filename=@tzmf,
size=100mb,maxsize=200,filegrowth=20)
go
这种形式生成库可以吗?请教各位!

回复列表 (共3个回复)

沙发

这样做不行吗?
若用VB调用系统命令,将模版库拷贝一份带序号目标库;
在调用存储过程
sp_attach_single_file_db [@dbname =] 'dbname',
    [@physname =] 'physical_name'
附加到数据库上,这样可以吗?
查资料说执行该命令用户要在sysadmin中,是指以sa登录吧?

板凳

一般情况下数据库都是先建好的,因创建数据库要耗用系统的很多资源。
如果一定要动态建库,可考虑先生成建库命令的字符串,再调用执行或在T-SQL使用 exec。但不能把数据库名当变量直接传入 create 语句.

3 楼

我试了一种方法可动态建库,库建好后使用都正常,不知会不会有不良后遗症?
我用VB调用的,先将模版库及日志CopyFile成目标库名及相关日志;再执行SQL的附加数据库语句。

我来回复

您尚未登录,请登录后再回复。点此登录或注册