sqlserver批量更改表架构

我们在使用云端的数据库时,因为使用的都是非sa用户登录,直接创建出来的表名称前都会带上一个你的用户名,如zhangsan.表名。

当我们下载备份在本地还原数据库时,往往会出现无法读取表的情况,因为本地并没有“zhangsan”这个用户及其相关的功能权限。

最简单的办法是批量将本地数据库中所有的表架构更改为“dbo",操作方法如下:

1、使用sa登录,定于到当前数据库,进行查询分析使用如下的语句,执行后将创建相关的待执行sql语句(来源于网络):

declare @name sysname

 declare csr cursor

   for select TABLE_NAME from INFORMATION_SCHEMA.TABLES

open csr

  FETCH NEXT FROM csr INTO @name

while (@@FETCH_STATUS=0)

BEGIN

SET @name='原构架名.' + @name

print 'ALTER SCHEMA 新构架名 TRANSFER ' + @name

fetch next from csr into @name

END

CLOSE csr

DEALLOCATE csr

2、执行以上语句后,根据你的表数量,会得到待执行的SQL语句,copy到查询分析器中,执行即可。

     如果遇到如下情况:因为文件组 'PRIMARY' 已满,可以在此数据库右键”属性--文件“中为此数据库添加一个相应的数据文件或日志文件,确定后,即可执行。


以上在测试环境sqlserver2008R2验证通过。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值