Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या होता है यदि किसी संग्रहीत कार्यविधि को चलाने के दौरान परिवर्तित किया जाता है?

मैंने अभी SQL Server 2008 R2 में इसका परीक्षण किया है

मैंने इसके साथ शुरुआत की:

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

इसके बाद मैंने निम्नलिखित कियाSQL सर्वर क्वेरी विंडो 1:

EXEC dbo.Stupid

SQL सर्वर क्वेरी विंडो 2, जबकि क्वेरी विंडो 1 में क्वेरी चल रही थी:

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

EXEC dbo.Stupid

SQL सर्वर क्वेरी विंडो 3, जबकि क्वेरी विंडो 1 और क्वेरी विंडो 2 में क्वेरी चल रही थीं:

EXEC dbo.Stupid

परिणाम:

  • क्वेरी विंडो 1 10 सेकंड में चली (और इसलिए विंडोज़ 2 और 3 के बाद समाप्त हो गई), और आईडी 1 - 5 लौटा दी गई
  • क्वेरी विंडो 2 में बदलाव किया गया और प्रक्रिया को 5 सेकंड में चलाया गया, और आईडी 6 - 10 लौटा दी गई
  • क्वेरी विंडो 3 5 सेकंड में चली और आईडी 6 - 10 लौटा दी

क्या होता है:

  • पहले से ही निष्पादित कोड प्रक्रिया पर चलना पूरा हो जाएगा जैसा कि वे शुरू होने पर था
  • कोड बदलने के बाद जो कुछ भी चलना शुरू होता है वह नया कोड चलाएगा


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पासथ्रू/पासथ्रू क्वेरी को संपादन योग्य कैसे बनाएं?

  2. तालिका की जांच कैसे करें और फिर उसका नाम बदलें

  3. SQL सर्वर में कैशिंग रोकें

  4. SQL 2008 भूगोल और ज्यामिति - किसका उपयोग करना है?

  5. SQL में 'GROUP' कीवर्ड के पास गलत सिंटैक्स