Necromoming:
Nếu bạn không muốn sử dụng các dạng xem SQL-Server 2000 (không được dùng nữa), hãy sử dụng cái này:
DECLARE @Command NVARCHAR(MAX)
SET @Command = N'ALTER AUTHORIZATION ON DATABASE::<<DatabaseName>> TO <<LoginName>>'
SELECT @Command = REPLACE
(
REPLACE(@Command, N'<<DatabaseName>>', QUOTENAME(SD.Name))
, N'<<LoginName>>'
,
QUOTENAME
(
COALESCE
(
SL.name
,(SELECT TOP 1 name FROM sys.server_principals WHERE type_desc = 'SQL_LOGIN' AND is_disabled = 'false' ORDER BY principal_id ASC )
)
)
)
FROM sys.databases AS SD
LEFT JOIN sys.server_principals AS SL
ON SL.SID = SD.owner_sid
WHERE SD.Name = DB_NAME()
PRINT @command
EXECUTE(@command)
GO
Đồng thời ngăn lỗi trên cơ sở dữ liệu hoặc người dùng có tên kỳ lạ và cũng sửa lỗi nếu không có người dùng nào được liên kết (sử dụng đăng nhập sa).