插入存储过程中的 SQL 会导致错误"incorrect syntax near '='"



存储过程代码(我只是删除了其他代码(

ALTER PROCEDURE [dbo].[SP_v2]
@CashCountBatchNo INT,
@CashierID VARCHAR(10),
@Remarks   VARCHAR(50),
@CashCount NVARCHAR(1000),
@ADJ       NVARCHAR(1000) = '',
@CutOff    VARCHAR(8) = ''
AS
SET NOCOUNT ON
DECLARE @tbl TABLE(DENOMINATION MONEY, [COUNT] INT)                
DECLARE @tblADJ TABLE(Description VARCHAR(300), Amount MONEY)                
DECLARE @Totals TABLE(CC MONEY, CH MONEY, CASHTOCOLLECT MONEY)
SET @CashCount = REPLACE(@CashCount, '_S_', ' Select ')                
SET @CashCount = REPLACE(@CashCount, '_;', ' union all ')                
SET @CashCount = SUBSTRING(@CashCount, 0, LEN(@CashCount) - 8) 
INSERT INTO @tbl(DENOMINATION, [COUNT])
EXEC sp_executesql @CashCount
SELECT * FROM @tbl
RETURN

它刚刚创建成功,现在我的问题...

UERMHIMS..Usp_Cashier_SaveCashCount_v2 
'',
'',
'',
'DENOMINATION=1000, COUNT=1 union select DENOMINATION=500, COUNT=1',
'',
''

此时,存储过程需要 4 个参数,当我执行存储过程时,它会抛出错误

Msg 102,级别 15,状态 1,第 1
行 "="附近的语法不正确。

您需要在执行语句之前打印出变量@CashCount

从我能看出你的逻辑来看,@CashCount的内容是这样的:

DENOMINATION=1000, COUNT=1 union select DENOMINATION=500,

这不是有效的 SQL。

作为测试,我在SQL Fiddle中运行此SQL,并得到完全相同的错误。

相关内容

  • 没有找到相关文章

最新更新