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

Apa yang terjadi jika mengubah prosedur tersimpan saat sedang berjalan?

Saya baru saja menguji ini di SQL Server 2008 R2

Saya mulai dengan:

CREATE PROCEDURE dbo.Stupid
AS
WAITFOR DELAY '0:00:10'
SELECT TOP 5 * FROM dbo.UniqueId
GO

Saya kemudian melakukan yang berikutJendela Kueri SQL Server 1:

EXEC dbo.Stupid

SQL Server Query Window 2, saat query di Query Window 1 sedang berjalan:

ALTER PROCEDURE dbo.Stupid
AS
WAITFOR DELAY '0:00:05'
SELECT TOP 5 * FROM dbo.UniqueId
WHERE ID > 5
GO

EXEC dbo.Stupid

SQL Server Query Window 3, saat query di Query Window 1 dan Query Window 2 sedang berjalan:

EXEC dbo.Stupid

Hasil:

  • Jendela Kueri 1 berjalan dalam 10 detik (dan karenanya selesai setelah jendela 2 dan 3), dan mengembalikan id 1 - 5
  • Jendela Kueri 2 mengubah dan menjalankan prosedur dalam 5 detik, dan mengembalikan id 6 - 10
  • Jendela Kueri 3 berjalan dalam 5 detik dan mengembalikan id 6 - 10

Apa yang terjadi:

  • Kode yang sudah dieksekusi akan selesai berjalan pada prosedur seperti saat dimulai
  • Apa pun yang mulai berjalan setelah kode diubah akan menjalankan kode baru


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan baris ringkasan dengan total

  2. Cara mengatur parameter SQL tanpa nama di SqlCommand

  3. Bagaimana cara mengatur baris tabel dalam urutan menaik dan menyimpan tabel secara bersamaan?

  4. Apa Makna Pembelajaran Mesin bagi Profesional Basis Data

  5. SQL Server Baris maksimum yang dapat disisipkan dalam satu pernyataan insert