SQL等效于“使用”模式?

时间:2009-02-11 15:46:16

标签: sql-server schema

我正在使用一个SQL Server数据库,它有多个模式分布的表(不是我的想法),所以查询最终看起来像这样:

select col1, col2
from some_ridiculously_long_schema_name.table1 t1
inner join
    another_really_long_schema_location.table2 t2
    on...

......你明白了。

当我将查询放入存储过程等时,这是一个小小的不便,但当我正在进行特殊查询时,这真的很痛苦。

有没有什么方法可以“包含”我所介入的所有模式,让它们自动寻址? (LINQPad这样做)。

我希望能够表明这样的事情:

using some_ridiculously_long_schema_name, another_really_long_schema_location

...然后使用我的地址空间中包含的模式进行查询。

如果不存在这样的情况,我会查看同义词,但我更愿意这样做,而不必将工件添加到数据库中。

4 个答案:

答案 0 :(得分:1)

Red-Gate销售一种SQL工具,可将智能感知添加到服务器管理工​​作室。从未尝试过,但它可能有助于减少击键次数:http://www.red-gate.com/products/SQL_Prompt/index.htm

答案 1 :(得分:1)

我知道您的感受,如果您需要保留模式(例如,如果您在每个模式中都有相同的表名)并且您一直在编写跨模式连接的查询,我可以提供的最佳建议是缩短您的模式模式名称。

低技术而不是你想听到的我肯定。

上面建议的同义词仅适用于对象级别(据我所知,你不能拥有整个架构的同义词)所以你必须拥有每个表,视图,存储过程,函数等的同义词想要在默认架构之外使用。

答案 2 :(得分:0)

不,不。 synonims是唯一的方法。

答案 3 :(得分:0)

那不行,因为如果你在两个模式中都有Table1那么你怎么知道你想要什么模式?