亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了SQL Server 2016更改對象所有者的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我繼承了一個SQL 2008 dBASE,它的所有對象都以開發人員作為所有者的名稱作為前綴,即ownername.sp_get_all_USERS。

我已將dBASE還原到SQL Server 2016 Express Edition。

有數百個dBASE對象,有沒有辦法自動將對象所有者更改為dbo,而不是手動編輯每個對象?

我嘗試過以下操作,但自SQL Server 2005以來,您顯然不能再對對象進行即席更改?

SELECT * from sysobjects where uid = user_id('UseNAme')
declare @Return int
exec @Return = sp_configure 'allow updates', '1'
SELECT @Return as 'Returned Code'
GO
reconfigure WITH OVERRIDE
GO
DECLARE @Rows int, @Error int
BEGIN TRANSACTION
update sysobjects set uid = user_id('dbo') where uid = user_id('UseNAme')
SELECT @Error = @@Error, @Rows = @@RowCount
SELECT @Rows as '#Rows'
IF @Rows > 0
 BEGIN  
  SELECT  @Rows AS '#Rows'
  COMMIT TRANSACTION
 END
else 
 BEGIN
  SELECT @Error AS 'Error #'
  ROLLBACK TRANSACTION
 END

exec sp_configure 'allow updates', '0'
reconfigure WITH OVERRIDE
go

最感謝的任何幫助。

推薦答案

您必須使用更改架構…

ALTER SCHEMA oldschemaname TRANSFER dbo.Address; 

自動使用下面的

這會將具有非SYSTEM架構的所有表更改為dbo,請注意,如果您有兩個不同架構的表,則它們不能存在于同一架構中

select *,row_number() over (order by (select null)) as rownum
into #tables
 from information_Schema.tables
where table_schema in (select name  from sys.schemas
 where name  not in ('dbo','guest','INFORMATION_SCHEMA','sys') and principal_id <16384
 )

now move 
declare @min int,@max int

select @min=min(rownum),@max=max(rownum)
from #tables

declare @tblname varchar(255),@schemaname sysname
declare @sql varchar(max)

while @min<=@max
Begin

select @tblname=table_name,@schemaname=table_schema from
#tables where rownum=@min

set @sql='alter schema dbo transfer '+ @schemaname+'.'+@tblname

--print @sql
exec(@sql)

Set @min=@min+1
End

sp_根據文檔說明更改對象所有者..

此存儲過程僅適用于MicrosoftSQL Server2000中可用的對象。此功能將在Microsoft SQL Server的未來版本中刪除。避免在新的開發工作中使用此功能,并計劃修改當前使用此功能的應用程序。請改用ALTER SCHEMA或ALTER AUTHORIZATION。Sp_changeobjecowner同時更改架構和所有者。為了保持與早期版本的SQL Server的兼容性,僅當當前所有者和新所有者都擁有與其數據庫用戶名同名的架構時,此存儲過程才會更改對象所有者。

這篇關于SQL Server 2016更改對象所有者的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:errorSQLServer2016ChangeObjectOwner exception IT資訊 sql-server sql-server-2
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定