【发布时间】:2021-07-11 08:01:46
【问题描述】:
它告诉我 +sol_id+ 附近的语法不正确。我不知道我做错了什么。
我正在尝试对存储过程进行建模,但它给我带来了一些问题,而不是完成整个工作。代码是这样的
CREATE PROCEDURE FindBranchVaultBalance
@sol_id varchar(50),
@acct_crncy_code varchar(50)
AS
SELECT *
FROM OPENQUERY (LINKEDSERVER,
'select foracid, acct_crncy_code, clr_bal_amt
from dummy_table
where bacid=''1010000001'' and sol_id='''''+@sol_id +''''' and acct_crncy_code='''+@acct_crncy_code+''' and del_flg=''N'' and acct_cls_flg=''N''')
GO;
我做错了什么?
编辑
我已将其编辑为如下所示
CREATE PROCEDURE FindBranchVaultBalance
@sol_id varchar(50),
@acct_crncy_code varchar(50)
AS
SELECT *
FROM OPENQUERY (LINKEDSERVER,
'select foracid, acct_crncy_code, clr_bal_amt
from dummy_table
where bacid=''1010000001'' and sol_id='''+@sol_id+''' and acct_crncy_code='''+@acct_crncy_code+''' and del_flg=''N'' and acct_cls_flg=''N''')
GO;
【问题讨论】:
-
sol_id='''''+看起来不正确,但第二个是acct_crncy_code='''+ -
我最初有'''+,在我决定添加'''''+之前给了我错误
-
你不应该将它用于两个变量,而不仅仅是第一个变量吗?
-
我现在编辑了它。请查看修改。
-
openquery()不支持使用表达式作为查询参数。它必须是一个常量字符串。对于您的情况,您需要动态生成整个openquery()语句
标签: sql-server stored-procedures