如何将一个数据库中的所有用户复制到另外一个数据库中?

bestone 2008-03-05 09:40:55
如何将一个数据库中的所有用户复制到另外一个数据库中?
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bestone 2008-03-05
  • 打赏
  • 举报
回复
搞定,写了一段脚本:
declare @l_loginname varchar(125), @l_user varchar(125)
declare cur cursor local for select loginname from DB1.master.dbo.syslogins


open cur
while 1>0 begin
fetch cur into @l_loginname
if @@fetch_status != 0 break

select @l_user=right(@l_loginname,len(@l_loginname)-charindex('\', @l_loginname))

if not exists (select * from master.dbo.syslogins where loginname = @l_loginname)
begin
exec sp_grantlogin @l_loginname
exec sp_defaultdb @l_loginname, N'DB2'
exec sp_defaultlanguage @l_loginname, N'us_english'
end

if not exists (select * from dbo.sysusers where name =@l_user and uid < 16382)
begin
exec sp_grantdbaccess @l_loginname, @l_user
end

end
close cur; deallocate cur
YanpingLuck 2008-03-05
  • 打赏
  • 举报
回复
不知道这个方法可行不,你试一下哦

select * into 目标数据库名..表名 from 源数据库名..表名
dawugui 2008-03-05
  • 打赏
  • 举报
回复
如果是这样的话,
不如自己手工在另外一个库中加入用户.
bestone 2008-03-05
  • 打赏
  • 举报
回复
两个数据库本身是不同的,只是所使用的用户是相同的,所以不能复制过去。
有没有什么自动复制的脚本?
忆轩辕 2008-03-05
  • 打赏
  • 举报
回复
建议把添加用户做成脚本。。。。。。。。。否则分离附加的话太麻烦了,系统库需要还原或者覆盖文件才行
dawugui 2008-03-05
  • 打赏
  • 举报
回复
要手工操作
tcxx2008 2008-03-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
直接把库备份还原或分离附加即可.
[/Quote]

这里说的是要把系统数据库也一起还原吗?我曾经操作做(没还原系统数据库master),有问题,因为有些数据是写入master中的吧。但如果我不想还原master呢?要然后手工操作,老乌龟????
dawugui 2008-03-05
  • 打赏
  • 举报
回复
直接把库备份还原或分离附加即可.

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧