锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
聽聽聽聽聽聽 鎴戞仮澶嶅埆浜哄浠藉湪鍒殑鏈哄櫒涓婄殑SQL鏁版嵁搴撳埌鎴戠殑鏈哄櫒涓婄殑SQL SERVER錛屾仮澶嶅悗璇ユ暟鎹簱涓湁涓涓猰is鐢ㄦ埛錛岃鐢ㄦ埛鏄墍鏈夎咃紝寰堝琛ㄧ殑鎵鏈夎呬篃鏄粬錛屼絾鎴戠殑瀹夊叏鎬ч噷鐨勭櫥褰曚腑娌℃湁璇ョ敤鎴鳳紝鎴戝垹闄や笉浜嗚鐢ㄦ埛錛屾彁紺衡滃洜涓洪夊畾鐨勭敤鎴鋒嫢鏈夊璞★紝鎵浠ユ棤娉曢櫎鍘昏鐢ㄦ埛鈥濓紒
闂瑙e喅鏂瑰紡錛?br />聽聽聽聽聽 1 濡傛灉鏄竴寮犺〃鏈夋闂錛岃В鍐蟲柟寮忓涓嬶細
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽exec sp_changeobjectowner mis.tablename', 'dbo'
聽聽聽聽聽
聽聽聽聽聽聽聽榪欐牱灝辨妸tablename鎸囧畾鐨勮〃鐨勬墍鏈夎呰祴鍊肩粰浜哾bo鐢ㄦ埛
聽聽聽聽 2 濡傛灉鎵鏈夎〃閮藉瓨鍦ㄦ闂錛岃繖鏄氨瑕佺紪鍐欏瓨鍌ㄨ繃紼嬪疄鐜版壒閲忎慨鏀逛簡
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽IF OBJECT_ID('ChangeAll') IS NOT NULL DROP PROC ChangeAll
聽聽聽聽聽聽聽聽聽GO
聽聽聽聽聽聽聽聽 CREATE PROCEDURE ChangeAll (
聽聽聽聽聽聽聽聽聽聽聽聽 @old sysname,
聽聽聽聽聽聽聽聽聽聽聽聽 @new sysname
聽聽聽聽聽聽聽聽 )
聽聽聽聽聽聽聽 AS
聽聽聽聽聽聽聽聽聽聽聽聽 DECLARE @objname sysname
聽聽聽聽聽聽聽聽聽聽聽聽 SET NOCOUNT ON
聽聽聽聽聽聽聽聽聽聽聽聽 IF USER_ID(@old) IS NULL
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BEGIN
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 RAISERROR ('The @old passed does not exist in the database', 16, 1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 RETURN
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 END
聽聽聽聽聽聽聽聽聽聽聽聽 IF USER_ID(@new) IS NULL
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BEGIN
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 RAISERROR ('The @new passed does not exist in the database', 16, 1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 RETURN
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽END
聽聽聽聽聽聽聽聽聽聽聽聽 DECLARE owner_cursor CURSOR FOR
聽聽聽聽聽聽聽聽聽聽聽聽聽SELECT name FROM sysobjects WHERE uid = USER_ID(@old)
聽聽聽聽聽聽聽聽聽聽聽聽 OPEN聽owner_cursor
聽聽聽聽聽聽聽聽聽聽聽聽聽FETCH NEXT FROM owner_cursor INTO @objname
聽聽聽聽聽聽聽聽聽聽聽聽 WHILE (@@fetch_status <> -1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BEGIN
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SET @objname = @old + '.' + @objname
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽EXEC sp_changeobjectowner @objname, @new
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 FETCH NEXT FROM owner_cursor INTO @objname
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽END
聽聽聽聽聽聽聽聽聽聽聽 CLOSE owner_cursor
聽聽聽聽聽聽聽聽聽聽聽聽DEALLOCATE owner_cursor
聽聽聽聽聽聽聽聽聽聽聽 GO
EXEC ChangeAll @old = 'mis', @new = 'dbo'
榪欐牱灝卞畬鎴愪簡鎵歸噺淇敼鏉冮檺鐨勫伐浣?br />
璇︾粏淇℃伅璇峰弬鑰冿細http://www.itpub.net/429496.html