Sql Server 2005或更新版本的T-SQL中是否有空语句关键字?类似于PL / SQL中的NULL语句。
答案 0 :(得分:42)
您可以声明标签不执行任何操作。
DECLARE @value INT
IF @value IS NULL
BEGIN
no_op1:
END
答案 1 :(得分:10)
以下是两种方法 - 参见B和C
Declare @status as char(1)
set @status = 'D'
If (@status = 'A')
select 'Great!'
Else if (@status = 'B')
begin
if null=null select null -- predicate never resolves true
end
Else if (@status = 'C')
set @status = @status -- set a variable to itself
Else
select 'Needs work!'
请注意,这是一个过于简化的示例。当条件复杂时,最好用于可读性。
答案 2 :(得分:7)
我也相信有时候合法使用无脚本(例如自动生成的脚本)。
虽然这是一个老线程,但我会把我的两分钱。我认为声明变量是您可以使用的最良性的陈述之一。该声明甚至没有出现在执行计划中:
IF (@variable = 0)
BEGIN
DECLARE @placeHolder BIT;
END
答案 3 :(得分:0)
没有。没有“无操作”的等价物。
SET NOCOUNT ON
。IF/ELSE
,如果条件为空则省略否则,你为什么要问?确切地说,重点是什么?
答案 4 :(得分:0)
while 1 = 0 break
在功能上我不能使用:
if 1 = 0 print ''
if 1 = 0 set nocount on
if 1 = 0 waitfor delay '00:00'
if 1 = 0 throw 50000, '', 10
if 1 = 0 select 1
if 1 = 0 return
标签或变量不能声明两次。