Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server:Bagaimana cara membatalkan serangkaian batch di Query Analyzer?

Inilah cara saya melakukannya:

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

Mode "noexec" menempatkan SSMS adalah keadaan di mana ia hanya mengkompilasi T-SQL dan tidak benar-benar menjalankannya. Ini mirip dengan menekan tombol toolbar Parse (Ctrl+F5) secara tidak sengaja, bukan Execute (F5).

Jangan lupa untuk mematikan kembali noexec di akhir skrip Anda. Jika tidak, pengguna akan dibingungkan dengan "Perintah berhasil diselesaikan" permanen. pesan.

Saya menggunakan cek terhadap @@error di batch berikutnya alih-alih menggunakan blok TRY CATCH. Menggunakan @@error di batch berikutnya akan menangkap kesalahan kompilasi, seperti "tabel tidak ada".

Selain mode noexec, saya juga mengaktifkan mode nocount. Dengan mode noexec aktif dan nocount nonaktif, kueri Anda masih akan melaporkan pesan "(0 baris terpengaruh)". Pesan selalu melaporkan nol baris, karena Anda berada dalam mode noexec. Namun, mengaktifkan nocount akan menyembunyikan pesan-pesan ini.

Perhatikan juga bahwa jika menjalankan SQL Server 2005, perintah yang Anda lewati mungkin masih memberikan pesan kesalahan jika merujuk pada tabel yang tidak ada dan perintah jika perintah pertama dalam kumpulan. Memaksa perintah menjadi perintah kedua dalam kumpulan dengan pernyataan Cetak palsu dapat menekan hal ini. Lihat Bug MS #569263 untuk lebih jelasnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# Masukkan ke dalam Tabel SQL dengan Daftar sebagai parameter

  2. Grup SQL Server berdasarkan Hitungan DateTime Per Jam?

  3. Cara Memperbaiki "Nama korelasi harus ditentukan untuk kumpulan baris massal di klausa dari." di SQL Server

  4. Setel IDENTITY_INSERT AKTIF tidak berfungsi

  5. SET XACT_ABORT ON tidak Bekerja di Buat Prosedur