4

我有一个存储过程来选择基于两个表的数据列表。第一个表是固定的:CO.Country. 但第二个表可以是多个表之一。表本身的名称是相同的:Location. 但是,表的架构是不同的:ABD.Location, CGA.Location, GBN.Location.

用户将从应用程序中选择模式,然后选择的模式将作为参数传递给存储过程。

但是在创建存储过程时解析存储过程时出现错误。

反正有没有将模式名称作为参数传递?

4

1 回答 1

3

使用DynamicSql

像这样试试

CREATE PROCEDURE proc_name
   @schema VARCHAR(25)
AS

DECLARE @Query VARCHAR(1000)
SET @query='SELECT * FROM' +@schema +'.Location'
EXECUTE(@query)
于 2013-08-26T05:38:01.550 回答