Esiste una parola chiave dichiarazione vuota in T-SQL in SQL Server 2005 o versione successiva? Qualcosa come la dichiarazione NULL in PL/SQL.Istruzione vuota in T-SQL
risposta
No. Non c'è un equivalente "Nessuna operazione".
- Per un proc memorizzato, avresti almeno
SET NOCOUNT ON
. - Per un
IF/ELSE
, se una condizione è omettere svuotarla
In caso contrario, perché me lo chiedi per favore? Per essere precisi, qual è il punto?
OK. Grazie. Ne ho bisogno per il mio generatore SQL. Ma comunque sembra che io debba rimuovere un ramo vuoto (IF/ELSE, CASE) prima, dai miei oggetti intermedi. Ho trovato che un'istruzione vuota può essere "emulata" da un blocco vuoto (BEGIN END) ma non ha un bell'aspetto. – ternyk
a volte succede brutto. Credo che il loro sia un uso valido. In una lunga e complicata struttura di ramificazione delle decisioni con diverse dichiarazioni if else, alcune di queste affermazioni possono contenere condizioni in cui non desideri esplicitamente alcuna azione. Inoltre, non vuoi che queste condizioni cadano con il default altrimenti, dove viene svolto un determinato lavoro. In tal caso, è un uso valido.
Qui ci sono due modi per farlo - vedi B e 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!'
Nota, questo è un esempio troppo semplificata. È meglio utilizzato per la leggibilità quando le condizioni sono complesse.
yep penso che il valore "if null = null select null" sia il più vicino possibile ai casi // NOOP vuoti in un normale linguaggio di tipo C – syclee
Mi piace molto la versione 'if null = null select null', perché è ripetibile all'interno di un ambito , nel caso in cui questo debba essere fatto più spesso e non ha effetti collaterali –
Credo anche che a volte ci siano usi legittimi per uno script di niente (gli script generati automaticamente, ad esempio).
Anche se è un thread vecchio, inserirò i miei due centesimi. Penso che dichiarare una variabile sia una delle affermazioni più favorevoli che puoi usare. La dichiarazione non viene nemmeno visualizzata nei piani di esecuzione:
IF (@variable = 0)
BEGIN
DECLARE @placeHolder BIT;
END
È possibile dichiarare un'etichetta per non fare nulla.
DECLARE @value INT
IF @value IS NULL
BEGIN
no_op1:
END
Grazie, penso che questo sia il modo migliore per non fare nulla perché in realtà non fa nulla, è solo dichiarativo. Lo userò per la traduzione automatica del codice di procedura memorizzato da Firebird a SQL-Server, perché Firebird consente blocchi vuoti mentre SQL-Server no. Almeno per i casi in cui il blocco iniziale non può essere rimosso banalmente. –
Grande. E nota che la stessa etichetta non può essere definita più di una volta. Ecco perché dovresti nominarla come no_op1 2 3 ... – sotn
- 1. TSQL - Istruzione MERGE con chiave composita
- 2. Istruzione CASE in where clausola nella query tsql
- 3. excel - se cella non è vuota, quindi fare istruzione IF
- 4. tSQL NOT IN Query
- 5. Transazioni nidificate in TSQL
- 6. millisecondo in SQL tsql
- 7. Conversione istruzione ARM in istruzione i386
- 8. TSQL: NOCHECK Chiave esterna interna CREATE TABLE
- 9. Disabilita controllo script TSQL?
- 10. TSQL 'Dove' Condizione
- 11. Richiedi istruzione in application.css.scss
- 12. Case in Select Istruzione
- 13. grep in istruzione IF
- 14. TSQL FOR XML EXPLICIT
- 15. Seleziona da unione tsql
- 16. CON VALORI TSQL
- 17. variabile 1 = ({istruzione 1; istruzione 2;}) in C
- 18. TSQL make grilletto fallire in silenzio
- 19. Costanti e Includi file in TSQL
- 20. Come si usano i loop in TSQL?
- 21. Come interrogare la colonna xml in tsql
- 22. incremento automatico subquery in tsql dichiarazione prescelta
- 23. Il comando OpenRowSet in TSQL restituisce NULLS
- 24. TSQL occorrenze di conteggio in più colonne
- 25. TSQL: try-catch transazione in trigger
- 26. TSQL Try/Catch in Transaction o viceversa?
- 27. In tsql cosa significa tablename (1) significa
- 28. CHECKPOINT funziona come COMMIT in TSQL?
- 29. Che cosa significa il simbolo "#" in TSQL?
- 30. Sostituire una nuova riga in TSQL
Cosa stai cercando di ottenere? – cjk