用户的默认架构。
它的意思是,每当我执行一个没有指向任何模式的选择查询时,它就会使用设置为默认的模式(我在某处阅读)。
由于某些原因,我更改了用户的默认架构。现在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_1
和USER_2
。
USER_1
默认架构为Schema_1
,USER_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 :(得分:0)
我认为你的问题是proc是从schema1运行的,它是用来确定未指定的任何底层对象的模式的。