2011-09-27 46 views
0

用戶的默認架構
它的意思是,每當我執行一個沒有指向任何模式的選擇查詢時,它就會使用默認設置的模式(我在某處讀取)。用戶的默認架構

由於某種原因我改變了用戶的默認模式。現在選擇語句應該是點默認模式,但它不起作用。請看下面的代碼。

CREATE SCHEMA Schema_1 
CREATE SCHEMA Schema_2 
GO 
Create table Schema_1.TEST (DATA Varchar(200)) 
Create table Schema_2.TEST (DATA Varchar(200)) 
GO 
insert into Schema_1.TEST values('Schema_1 IS HERE') 
insert into Schema_2.TEST values('Schema_2 IS HERE') 
GO 

CREATE proc Schema_1.TestSP 
AS 
SELECT * FROM TEST ---[no schema name given] 
GO 

exec Schema_1.Testsp 

此代碼後,我已經創建了兩個用戶USER_1USER_2
USER_1默認架構是Schema_1USER_2默認架構是Schema_2。我已執行Schema_1.Testsp SP。它給出Schema_1 IS HERE
現在我設置爲Schema_2作爲USER_1
的默認架構再次,我已經執行Schema_1.Testsp SP。它給出Schema_1 IS HERE
但它需要結果Schema_2 IS HERE

我想你明白了我的觀點。

+0

我認爲用戶可能需要重新連接到SQL Server以獲取默認的模式重置。 – JNK

回答

0

我認爲你的問題是proc從schema1運行,這就是它用來確定未指定的任何底層對象的模式。