如何测试sql server触发器中的变量?

发布于 2024-12-09 08:00:09 字数 190 浏览 1 评论 0原文

我需要测试某个变量是否存在于某个列表中,所以我使用

if @someVar in ('value1','value2','value3',)
   begin

   end

但这不起作用,即使 @someVar 等于一个值, if 语句的主体也永远不会执行。

你能帮忙吗,非常感谢

i need to test if a variable exists in a certain list so i use

if @someVar in ('value1','value2','value3',)
   begin

   end

but this doesn't work, the body of the if statement is never executed even if @someVar is equals to a value.

could you help please, thank you very much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烈酒灼喉 2024-12-16 08:00:09

这确实有效,您的代码中一定存在其他问题。

declare @someVar varchar(50) = 'value1'

if @someVar in ('value1','value2','value3')
   begin
   print 'yes'
   end

返回 yes

您是否正在为 @someVar 赋值?您是否忘记在变量声明中为其指定长度,因此它会被默默地截断为 1 个字符?

That does work there must be some other problem in your code.

declare @someVar varchar(50) = 'value1'

if @someVar in ('value1','value2','value3')
   begin
   print 'yes'
   end

Returns yes

Are you assigning a value to @someVar? Have you forgotten to give it a length in the variable declaration so it is being silently truncated to 1 character?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文