【问题标题】:What returns select to declared variable when no row is selected?当没有选择行时,什么将选择返回到声明的变量?
【发布时间】:2017-12-04 03:36:27
【问题描述】:

我的 sql 过程中有以下声明:

declare @my_var char(10)
select @my_var = ''
@my_var output

select @my_var = my_db.my_variable from dba.my_db

如果没有对应的行,分配给@my_var 的内容是什么?

【问题讨论】:

  • 自己试试Select @my_var :)
  • @TriV 问题是我做不到
  • 为什么不能自己测试一下?

标签: sql-server tsql select stored-procedures


【解决方案1】:

如果查询没有返回结果,则不会更新变量;所以将保留它之前分配的值(或null,如果它没有被分配)。

您可以通过运行以下代码自己查看:

declare @my_var char(10)
set @my_var = 'a'
select @my_var = 'b' where 1=0
select @my_var --returns a

declare @my_var2 char(10)
select @my_var2 = 'b' where 1=0
select @my_var2 --returns null

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    相关资源
    最近更新 更多