【发布时间】:2012-07-06 02:09:55
【问题描述】:
我正在设计一个多租户数据库。许多基于每个租户所需的操作已被编写为存储过程。几乎所有这些都使用动态 SQL 执行,因为除了动态语句之外,我还没有找到区分模式的方法。
EXEC( 'SELECT * FROM ' + @SchemaName + '.Contacts' )
有什么方法可以创建一个表示架构的变量,这样我就可以调用 select 语句而不用动态构建它们?
SELECT * FROM @TheSchema.Contacts
SQL Server 2008
【问题讨论】:
-
@TheSchema 在这里真正代表什么?自定义架构,还是数据库名称和架构名称?
-
只是架构。数据库隐含在连接中。
标签: sql sql-server-2008 schema prepared-statement multi-tenant