论坛

首页 » 网站开发 » ASP.NET » 批量修改 SQL Server 数据表和存储过程的所有者或架构
xelnage - 2008-5-25 15:54:00
SQL Server 2000

exec sp_changeobjectowner '[bbsdb].[dv_style]',[dbo]

更改当前数据库中对象的所有者备份、恢复数据库时,往往会出现所有者是原来的用户,这样当你在新的系统中使用 时,会出现表名无效的错误提示,而加入原来的用户名,又会出现用户已经存在的错误,
所以最好的方法就是修改成dbo:

怎么样把SQL Server 2000的用户表的所有者,改成dbo,而不是用户名?

(修改存储过程的方法,在查询器中执行:
EXEC sp_changeobjectowner 'usera.hishop_creatorder', 'dbo'),就把 usera的存储过程改为dbo所有了。

可以使用 sp_changedbowner 更改数据库的所有者。

方法一:右键点击该表 -》设计表,在上面的一排小图标中,点最后一个“条件约束”,点“表”页,在里面更改所有者。(若没有条件约束的小图标,可以点右键,能看到一个“check约束”的选项)

方法二:利用脚本直接执行,用系统帐号或者超户登陆到该数据库,然后执行下面语句:

sp_configure 'allow updates','1'
go
reconfigure with override
go
update sysobjects set uid=1 where uid<>1
go
sp_configure 'allow updates','0'
go
reconfigure with override

第二种方法只能使用一次,第二次使用会出错。

SQL Server 2005

1。在SQL Server 2005中批量修改存储过程的架构,执行以下SQL,将执行结果拷贝出来,批量执行既可。

SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + p.Name
FROM sys.Procedures p INNER JOIN sys.Schemas s on p.schema_id = s.schema_id
WHERE s.Name = '旧的架构名称'

2。在SQL Server 2005中批量修改表的架构,执行以下SQL,将执行结果拷贝出来,批量执行既可。

declare @name sysname
declare csr1 cursor
for
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
open csr1

FETCH NEXT FROM csr1 INTO @name
while (@@FETCH_STATUS=0)
BEGIN
SET @name='旧的架构名称.' + @name

print 'ALTER SCHEMA dbo TRANSFER ' + @name
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1

------------执行结果如:----------
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_sellbuy2
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_outsourcing
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_sellbuy
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_directory
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_company2
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_count
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_company
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_code
ALTER SCHEMA dbo TRANSFER cwb4129.tbl_ad
ALTER SCHEMA dbo TRANSFER cwb4129.smt_xxnewssort_vip
ALTER SCHEMA dbo TRANSFER cwb4129.SMT_xxnewssort
... ... ...

然后将这个结果在执行一遍即可。
姚依卉里 - 2012-1-17 3:58:00
支持楼主。支持论坛 神印王座 http://www.qqbook.net
程企希心 - 2012-1-18 2:54:00
支持楼主。感谢发贴 http://www.71au.com  东莞桑拿
丁占及宛 - 2012-1-18 22:30:00
我觉得不错噢。收藏了www.meiliya.com.cn 大码女装
雷丘壮姐 - 2012-1-19 19:30:00
支持楼主www.huiyizhangjiajie.com  湖南张家界会议  www.zhangjiajiehunan.com  张家界 www.zjjits.cn 张家界旅游报价  www.gozjj.net  张家界旅游信息网 www.zjjred.com  张家界旅游 www.zjjholiday.com  张家界旅游 www.okfh.com  凤凰古城旅游网  www.laizjj.cn  张家界旅游线路 www.chinazjj.cn  张家界旅行 www.cits-zjj.com  张家界旅游网  www.zjjcts.com.cn 张家界中国旅行社  www.zjjhn.com  湖南张家界旅游景点   www.zjjits.com.cn 张家界旅游景点  www.zjjok.com 张家界旅游网
廖色尖乳 - 2012-1-20 1:15:00
支持楼主神印王座 http://www.qqbook.net
杨负亭奈 - 2012-1-20 19:42:00
挺好的。我很喜欢www.huiyizhangjiajie.com  湖南张家界会议  www.zhangjiajiehunan.com  张家界 www.zjjits.cn 张家界旅游报价  www.gozjj.net  张家界旅游信息网 www.zjjred.com  张家界旅游 www.zjjholiday.com  张家界旅游 www.okfh.com  凤凰古城旅游网  www.laizjj.cn  张家界旅游线路 www.chinazjj.cn  张家界旅行 www.cits-zjj.com  张家界旅游网  www.zjjcts.com.cn 张家界中国旅行社  www.zjjhn.com  湖南张家界旅游景点   www.zjjits.com.cn 张家界旅游景点  www.zjjok.com 张家界旅游网
于户纣咸 - 2012-1-21 0:24:00
挺好的。我很喜欢神印王座 http://www.qqbook.net
潘小仲步 - 2012-2-2 17:49:00
要是在丰富点就好了www.huiyizhangjiajie.com  湖南张家界会议  www.zhangjiajiehunan.com  张家界 www.zjjits.cn 张家界旅游报价  www.gozjj.net  张家界旅游信息网 www.zjjred.com  张家界旅游 www.zjjholiday.com  张家界旅游 www.okfh.com  凤凰古城旅游网  www.laizjj.cn  张家界旅游线路 www.chinazjj.cn  张家界旅行 www.cits-zjj.com  张家界旅游网  www.zjjcts.com.cn 张家界中国旅行社  www.zjjhn.com  湖南张家界旅游景点   www.zjjits.com.cn 张家界旅游景点  www.zjjok.com 张家界旅游网
1
查看完整版本: 批量修改 SQL Server 数据表和存储过程的所有者或架构