日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

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

問題描述

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

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

有數(shù)百個(gè)dBASE對(duì)象,有沒有辦法自動(dòng)將對(duì)象所有者更改為dbo,而不是手動(dòng)編輯每個(gè)對(duì)象?

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

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

最感謝的任何幫助。

推薦答案

您必須使用更改架構(gòu)…

ALTER SCHEMA oldschemaname TRANSFER dbo.Address; 

自動(dòng)使用下面的

這會(huì)將具有非SYSTEM架構(gòu)的所有表更改為dbo,請(qǐng)注意,如果您有兩個(gè)不同架構(gòu)的表,則它們不能存在于同一架構(gòu)中

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_根據(jù)文檔說明更改對(duì)象所有者..

此存儲(chǔ)過程僅適用于MicrosoftSQL Server2000中可用的對(duì)象。此功能將在Microsoft SQL Server的未來版本中刪除。避免在新的開發(fā)工作中使用此功能,并計(jì)劃修改當(dāng)前使用此功能的應(yīng)用程序。請(qǐng)改用ALTER SCHEMA或ALTER AUTHORIZATION。Sp_changeobjecowner同時(shí)更改架構(gòu)和所有者。為了保持與早期版本的SQL Server的兼容性,僅當(dāng)當(dāng)前所有者和新所有者都擁有與其數(shù)據(jù)庫用戶名同名的架構(gòu)時(shí),此存儲(chǔ)過程才會(huì)更改對(duì)象所有者。

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

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

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定