我们在使用云端的数据库时,因为使用的都是非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验证通过。