sql server - transact - Declaración vacía en T-SQL
sql transact stuff (4)
No. No hay un equivalente de "No operación".
- Para un proceso almacenado, tendría al menos
SET NOCOUNT ON
. - Para un
IF/ELSE
, si una condición está vacía, omítala
De lo contrario, ¿por qué preguntas por favor? Para ser precisos, ¿cuál es el punto?
¿Hay una palabra clave de declaración vacía en T-SQL en Sql Server 2005 o más reciente? Algo como una declaración NULL en PL / SQL.
Puedes declarar una etiqueta para no hacer nada.
DECLARE @value INT
IF @value IS NULL
BEGIN
no_op1:
END
Sucede lo feo a veces. Creo que su es un uso válido. En una estructura de bifurcación de decisiones larga / complicada con varias declaraciones en caso contrario, algunas de esas declaraciones pueden contener condiciones en las que específicamente no desea ninguna acción. Tampoco desea que esas condiciones se caigan a través de la configuración predeterminada, donde se realiza cierto trabajo. En ese caso, es un uso válido.
Aquí hay dos maneras de hacer esto - ver B y 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!''
Tenga en cuenta, este es un ejemplo muy simplificado. Se utiliza mejor para facilitar la lectura cuando las condiciones son complejas.
También creo que a veces hay usos legítimos para un script de nada (scripts generados automáticamente, por ejemplo).
Aunque es un hilo viejo, lo pondré en mis dos centavos. Creo que declarar una variable es una de las afirmaciones más benignas que puedes usar. La declaración ni siquiera aparece en los planes de ejecución:
IF (@variable = 0)
BEGIN
DECLARE @placeHolder BIT;
END