修改SQL2005數據庫表中所有者

 

         文章純屬個人體會和實踐,如有錯誤,請轉告於我。大家一起研究一下!

         今天遇到一個問題,就是網站登錄後臺的時候,出錯了,提示找不到admin表。但是在數據庫的表中是能夠看到的,只是表名略有不同。

        先說說問題吧:

        首先,網站是從別的服務器上轉到這個服務器上的,我們都知道網站有數據庫的,況且這個網站是SQL2005的數據庫,也就是傳到這個服務器上之後,我們要附加數據庫,但是附加完畢之後,也就需要配置數據庫。

        然後我們需要進行新建這個數據庫的賬號和密碼,但是默認原本數據庫裏面的賬號就必須得刪除,但是就在刪除的時候,出錯了!說是用戶在架構中存在,我們大家都知道用戶默認新建之後會出現在數據庫的架構裏面,所以要刪除此用戶,必須先要到架構裏面刪掉這個用戶的架構。

        但是,可惜的是在刪除的時候,又出現了錯誤,也就是數據庫的架構在admin的表中已經使用,也就是我在本文開始前的一句話,表名變了,默認的表名一般爲dbo_admin ,但是此時的表名爲用戶名加admin,例如:“51cto_admin”就像這種格式。

         所以,情況惡劣了,就是架構也刪不掉,就意味着用戶刪不掉,也意味着現在的表也不能使用。理所當然的是先要修改表名。但是,表有很多,批量修改表名的命令是有,但是要與儲存過程一起使用。

         首當其衝的當然是要新建一個儲存過程,但是百度不給力,搜了半天沒有結果,根據公司網建加研發的一些人給經驗,然後弄出來了。

解決辦法 :

       1、 首先在此數據庫裏面新建查詢,直接複製下面的代碼到查詢窗口裏面,點執行就可以了,代碼如下:

 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[changename]')
and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[changename]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
Create PROCEDURE dbo.changename
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS
DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR
select 'Name' = name,
'Owner' = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end
FETCH NEXT FROM curObject INTO @Name, @Owner
END
close curObject
deallocate curObject
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

        2、執行完畢之後,也就是存儲過程已經建立完畢,然後開始執行,下面的代碼,複製之後,修改成你表中的名稱,比如我以51CTO_admin爲例,代碼如下:

           exec Changename '51CTO','dbo'

        3、執行完這兩段代碼之後,在刷新一下數據庫,此時數據庫的表就顯示爲“dbo_admin”這樣纔算解決完畢。

        其實文章到上面一段已經結束了,不過我還說一下吧!

        這個被上傳到這個服務器上的網站屬於ASP的,所以他的配置文件在admin的conn文件和conn2文件裏面配置。所以新建SQL用戶和密碼之後,在裏面配置進去,就可以了。

        感謝大家的關注,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章