Is there an empty statement keyword in T-SQL in Sql Server 2005 or newer? Something like NULL statement in PL/SQL.
问题:
回答1:
No. There is not a "No operation" equivalent.
- For a stored proc, you'd have at least
SET NOCOUNT ON
. - For an
IF/ELSE
, if a condition is empty omit it
Otherwise, why do you ask please? To be precise, what's the point?
回答2:
You can declare a label to do nothing.
DECLARE @value INT
IF @value IS NULL
BEGIN
no_op1:
END
回答3:
ugly happens sometimes. I believe their is a valid use. In a lengthy/complicated decision branching structure with several if else statements, some of those statements may contain conditions in which you specifically desire no action. You also don't want those condition falling thru do the default else, where certain work is done. In that case, it's a valid use.
Here are two ways to do this - see B and 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!'
Note, this is an over-simplified example. It is best used for readability when conditions are complex.
回答4:
I also believe there are sometimes legitimate uses for a nothing script (automatically generated scripts for example).
Although it's an old thread, I'll put in my two cents. I think declaring a variable is one of the most benign statements you can use. The statement doesn't even show up in execution plans:
IF (@variable = 0)
BEGIN
DECLARE @placeHolder BIT;
END