如何将模式作为参数传递给sql server中的存储过程?

use*_*831 5 sql sql-server parameters schema stored-procedures

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

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

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

是否有办法将架构名称作为参数传递?

Nit*_*esh 3

使用DynamicSql

尝试这样

CREATE PROCEDURE proc_name
   @schema VARCHAR(25)
AS

DECLARE @Query VARCHAR(1000)
SET @query='SELECT * FROM ' +@schema +'.Location'
EXECUTE(@query)
Run Code Online (Sandbox Code Playgroud)