这样我又重新back一次。还是失败。无意中我看到了How to make an SQL readable backup 文章,下面有个连接如何更改dbowner的这才启发我,需要更改这个。试验一下,将aspnet的名字换了服务器的机器名。失败!!!
最后改成了dbo,这才成功!
贴出脚本文件,更改owner的时候table使用
DECLARE @oldOwner sysname, @newOwner sysname, @sql varchar(1000)
SELECT
@oldOwner = 'PC\ASPNET'
, @newOwner = 'dbo'
, @sql = '
IF EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLES
WHERE
QUOTENAME(TABLE_SCHEMA)+''.''+QUOTENAME(TABLE_NAME) = ''?''
AND TABLE_SCHEMA = ''' + @oldOwner + '''
)
EXECUTE sp_changeobjectowner ''?'', ''' + @newOwner + ''''
EXECUTE sp_MSforeachtable @sql
更改存储过程的:
DECLARE @oldOwner sysname, @newOwner sysname SELECT @oldOwner = 'PC\ASPNET' , @newOwner = 'dbo' select 'EXECUTE sp_changeobjectowner '''+QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.ROUTINE_NAME)+''','''+@newOwner+'''' from INFORMATION_SCHEMA.ROUTINES a where a.ROUTINE_TYPE = 'PROCEDURE' AND a.SPECIFIC_SCHEMA = @oldOwner AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.SPECIFIC_SCHEMA)+'.'+QUOTENAME(a.ROUTINE_NAME)), 'IsMSShipped') = 0运行这个脚本后得到每个更改的命令。粘贴结果再次运行。