3

例如,如果我有以下声明:

declare @uid int;
set @uid = (select id from tablename where condition)

在这种情况下,如果 select 没有返回任何结果,那么它的值@uid是多少?

4

3 回答 3

2

在这种情况下它将返回 NULL

于 2012-11-08T10:05:10.050 回答
2

简而言之,它将为空

我制作了简单的临时表来测试这个

declare @temp table 
 (
   id int identity(1,1) not null  ,
   alpha nvarchar(50)
 )

 insert into @temp select 'z'

声明一个变量nvarchar type并在此条件不满足的情况下获取值,则为 null,如果您通过 print 语句看到,则应该没有任何内容将被打印

declare @test nvarchar(50)


 select @test=alpha from @temp where id=70

 insert into @temp  select @test 
 select * from @temp


 print @test

我只是再次插入它以确认有空

于 2012-11-08T10:09:10.353 回答
1

做一个检查,像这样:

declare @uid int;
set @uid = (select id from tablename where condition)
If @uid IS NULL
  print 'uid is null or not exist'

或者,您可以设置默认值以防返回 null

 If @uid IS NULL
      set @uid = 0
于 2012-11-08T10:12:56.557 回答