用户的默认架构

时间:2011-09-27 11:37:16

标签: sql-server-2008

用户的默认架构
它的意思是,每当我执行一个没有指向任何模式的选择查询时,它就会使用设置为默认的模式(我在某处阅读)。

由于某些原因,我更改了用户的默认架构。现在select语句应该是点默认模式,但它不起作用。请看下面的代码。

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

我认为你明白我的观点。

1 个答案:

答案 0 :(得分:0)

我认为你的问题是proc是从schema1运行的,它是用来确定未指定的任何底层对象的模式的。