复制数据库,可以右键点击数据库,选择“任务”→“生成脚本”,然后选择所有表。在查询编辑器中,将数据库名称替换成新数据库名,然后执行,就能将表结构都复制过去了。如果要想将数据和表结构一起生成脚本,一定要在高级选项中选择“架构和数据”!
注意:在这里点击“高级”!
选择“架构和数据”
在用脚本建立数据库时,如果出现了,“dbuser 是无效登录名或您没有相应的权限”或其他用户名无效,那么就需要在数据库最外层建立这个登录名,然后再次运行脚本,就不会报错了。
那么如何删除数据库呢?
请用以下代码即可:
--删除所有约束
DECLARE c1 cursor for
select'alter table ['+ object_name(parent_obj)+'] drop constraint ['+name+']; '
from sysobjects
where xtype ='F'
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1
--删除数据库所有表
declare @tname varchar(8000)
set @tname=''
select @tname=@tname+Name+','from sysobjects where xtype='U'
select @tname='drop table '+ left(@tname,len(@tname)-1)
exec(@tname)
--删除视图:
declare v_mycur cursor local for select [name] from dbo.sysobjects where xtype='V' --声明游标
declare @vname varchar(100)
OPEN v_mycur --打开游标
FETCH NEXT from v_mycur into @vname
WHILE @@FETCH_STATUS = 0
BEGIN
exec('drop VIEW ' + @vname)
FETCH NEXT from v_mycur into @vname --逐条读取
END
CLOSE v_mycur --关闭游标
--删除存储过程:
declare mycur cursor local for select [name] from dbo.sysobjects where xtype='P'
declare @name varchar(100)
OPEN mycur
FETCH NEXT from mycur into @name
WHILE @@FETCH_STATUS = 0
BEGIN
exec('drop PROCEDURE ' + @name)
FETCH NEXT from mycur into @name
END
CLOSE mycur