【发布时间】:2016-10-21 04:39:43
【问题描述】:
我正在使用命名参数调用存储过程。
exec MySP @name = 'binesh', @amount = @amt, @date = @date
对我来说效果很好。
但是当我尝试的时候
exec MySP2 @name = 'binesh', @amount = -@amt, @date = @date
或
exec MySP3 @name = 'binesh', @amount = @amt, @date = convert(varchar(25), @date, 131)
我收到语法错误。
这是强制性的,我需要为每个变量创建单独的变量(常识告诉它不会这样)。那么这个的语法是什么?
谢谢大家
比尼什
【问题讨论】:
-
您遇到的语法错误是什么?每个 sp 中的变量是如何声明的?
-
如果您收到 -1000 错误,可能是因为您的查询由于输入以外的其他原因无法处理负数。
-
我在这样的查询窗口中调用。它不是-1000。它的-@amt。对不起。更新问题
-
在这种情况下,@amt 示例的问题是您不能在参数中使用 +/-(一元运算符)。所以是的,你需要一个单独的变量。 '-1000' 和 '-@variable' 的区别在于 -1000 不执行操作,它只是一个数字。
标签: sql-server database tsql stored-procedures named-parameters