小编典典

如何将架构作为参数传递给SQL Server中的存储过程?

sql

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

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

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

无论如何,有没有要传递架构名称作为参数?


阅读 138

收藏
2021-03-23

共1个答案

小编典典

使用DynamicSql

这样尝试

CREATE PROCEDURE proc_name
   @schema VARCHAR(25)
AS

DECLARE @Query VARCHAR(1000)
SET @query='SELECT * FROM' +@schema +'.Location'
EXECUTE(@query)
2021-03-23