sql資料庫時提示物件名無效,SQL資料庫時提示物件名 XXX 無效

2021-12-19 16:10:08 字數 2339 閱讀 1456

1樓:有緣無份

原因一:新建的資料庫,沒有將初始資料匯入到新庫裡。

解決方法:

資料庫做了遷移後,一般會進行匯入/還原資料的過程,在這個過程中,要注意新資料庫的完整物件名與原來是一致的。

比如,您的舊資料庫名叫 db1 , 舊資料庫使用者是 dbuser1, 現在要遷移到新的資料庫上,新資料庫名是 db2, 新資料庫使用者是 dbuser2。

sqlserver物件的完整物件名是 資料庫名.使用者名稱.表名 這樣的,假設你的舊資料庫上有個表名叫 table1,那它的完整物件名就是 db1.dbuser1.table1,

當你用新的資料庫名登入匯入舊資料時,新的表名可能變成了 db2.dbuser2.table1,這樣的話,您的程式查詢資料時可能會出現物件名無效的錯誤。

解決方法:要解決這個問題,一般需要做兩步操作:

1. 請分別使用 sp_changeobjectowner '這裡改為資料庫完整物件名','dbo' 這個命令將所有的使用者表,使用者檢視,使用者儲存過程等的所有者全部改為系統內建的特殊使用者dbo

以下是一個可以簡化執行上面操作的儲存過程,以下儲存過程執行後可能還會有部分的物件改不到所有者,這時請手動執行上面的命令將未能改所有者的物件重新嘗試一下。

declare @crsrvar cursor

declare @pname  varchar(40) --物件名

declare @oldowner varchar(40) --原物件所有者

declare @objfullname varchar(80) --原物件全名

set @oldowner = '這裡改為資料表/檢視/儲存過程等的舊所有者名稱'

set   @crsrvar = cursor for select name from sysobjects where xtype='u' --xtype=u 表示使用者表

open  @crsrvar

fetch next from @crsrvar into @pname

while(@@fetch_status=0)

begin

set @objfullname  = @oldowner + '.' + @pname

exec sp_changeobjectowner @objname=@objfullname,@newowner='dbo'  --dbo為所有者名

fetch next from @crsrvar into @pname

endclose   @crsrvar

deallocate   @crsrvar

2. 可能您的編寫**程式的時候沒有注意通用性,在查詢資料時採用了類似 select * from dbuser1.table1 這樣的sql語句,一般來說,這不是一個好的習慣,在這種情況下,如果資料庫遷移過的話,經常會導致物件名無效的錯誤,為了避免這種不必要的問題,建議您在程式中查詢資料時,直接用 select * from table1 這樣的方式,就是在程式中不在用物件的完整名稱,而是單使用表名或檢視名,這樣就可以避免不必要的「物件名無效」的問題。

2樓:匿名使用者

是你連線的資料庫的問題吧,你要找資料庫中加入(你的計算機主機名\aspnet)使用者,還要設定該使用者的許可權。在資料庫中建立儲存過程就行了

3樓:匿名使用者

不是的 是你連線資料庫時路徑可能出錯了

仔細檢查路勁

4樓:糟糠

應該是資料庫中表名錯誤,一般資料庫中沒有此表時就會出現此錯誤。

sql新建查詢時,表名沒錯,為什麼說物件名無效

5樓:文藝小生

1.以baisql2012為例,我們在sql查詢du時,有時會遇zhi到這種情況:查詢失敗,提示「物件dao名 *** 無效」。回

2.原因是例答

子中的examtest只是表名,沒有指定資料庫名,加上資料庫名和所有者名就可以了。

3.如果只加資料庫名是不行的,因為資料庫裡的表是按角色管理的,不是所有角色都可以查詢某個表,所以必須只能所有者。

4.如果不在sql中指明資料庫名和所有者名,也是可以的。這時就需要在工具上設定資料庫。

5.把當前資料庫設定為 test之後,再查詢就同樣不會出問題了。

6樓:逢床做戲

首先你的表實在那個student裡面吧 左上角的master 是系統資料庫 左上角的表示當前的資料庫 所以查詢時候找不到。 加一句

use studentgo

7樓:匿名使用者

use 資料庫名。最執行查詢試試

sql中的物件名無效問題 30

SQL資料庫練習題,急求SQL資料庫練習題

1.sql server 2000是典型的關係型資料庫產品。1 2.在一臺計算機上可以同時執行多個版本的sql server。1 3.在sql server中日誌檔案是維護資料庫完整性的重要工具。0 4.在定義資料表時,定義某列為標識列的關鍵字是identity。1 5.浮點資料型別的優點是能夠儲存...

sql資料庫高手幫忙

alter table dbo room with nocheck add constraint pk room primary key clustered rno on primary 以上是rno是room的key alter table dbo pr add constraint fk pr ...

如何畫資料庫ER圖,怎麼把SQL資料庫畫成ER圖

構成e r圖的基本要素是實體型 屬性和聯絡,其表示方法為 實體型 entity 用矩形表示,矩形框內寫明實體名。屬性 attribute 用橢圓形表示,並用無向邊將其與相應的實體連線起來 比如學生的姓名 學號 性別 都是屬性。聯絡 relationship 用菱形表示,菱形框內寫明聯絡名,並用無向邊...