Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server:Jak przerwać serię partii w Query Analyzer?

Oto jak bym to zrobił:

PRINT 'This runs'
go

SELECT 0/0, 'This causes an error'
go
if (@@error <> 0)
    Begin
    set nocount on
    set noexec on
    End
GO

PRINT 'This should not run'
go

set noexec off
set nocount off
GO

Tryb „noexec” oznacza, że ​​SSMS jest stanem, w którym po prostu kompiluje T-SQL i nie wykonuje go w rzeczywistości. Jest to podobne do przypadkowego naciśnięcia przycisku Parse na pasku narzędzi (Ctrl+F5) zamiast Wykonaj (F5).

Nie zapomnij wyłączyć noexec na końcu skryptu. W przeciwnym razie użytkownicy będą zdezorientowani stałymi „Poleceniami ukończonymi pomyślnie”. wiadomości.

Używam sprawdzenia przeciwko @@error w kolejnej partii zamiast używać bloków TRY CATCH. Użycie @@error w następnej partii wykryje błędy kompilacji, takie jak „tabela nie istnieje”.

Oprócz trybu noexec przełączam również tryb nocount. Gdy tryb noexec jest włączony i wyłączony, zapytania nadal będą zgłaszać komunikat „(0 wierszy, których dotyczy problem)”. Wiadomość zawsze zgłasza zero wierszy, ponieważ jesteś w trybie noexec. Jednak włączenie funkcji nocount powoduje wyłączenie tych wiadomości.

Należy również zauważyć, że w przypadku uruchamiania programu SQL Server 2005 polecenie, które pomijasz, może nadal generować komunikaty o błędach, jeśli odwołuje się do tabeli, która nie istnieje, oraz polecenie, jeśli jest to pierwsze polecenie w partii. Wymuszenie, aby polecenie było drugim poleceniem w partii z fałszywą instrukcją Print, może to pominąć. Zobacz Błąd MS #569263 po więcej szczegółów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć tekst z wielu wierszy w jeden ciąg tekstowy w SQL Server

  2. Jak wyświetlić nazwę tabeli źródłowej kolumn w WIDOKU (SQL Server 2005)

  3. zastąp kolumnę obliczeniową logiką, która działa z INSERT

  4. Wyjątek dotyczący maksymalnych parametrów SqlCommand przy 2099 parametrach

  5. Nie zarejestrowano żadnych przystawek dla programu Windows PowerShell w wersji 2