Microsoft SQL Server
PHANTOM पढ़ा
खोज…
परिचय
टिप्पणियों
आप MSDN पर विभिन्न ISOLATION LEVEL
पढ़ सकते हैं
अलगाव का स्तर असम्बद्ध किया गया
एक नमूना डेटाबेस पर एक नमूना तालिका बनाएँ
CREATE TABLE [dbo].[Table_1](
[Id] [int] IDENTITY(1,1) NOT NULL,
[title] [varchar](50) NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
अब एक फर्स्ट क्वेरी एडिटर खोलें (डेटाबेस पर) नीचे दिए गए कोड को डालें, और डीबी पर एक पंक्ति डालने पर निष्पादित करें (- thebackback को न छूएं ) इस स्थिति में बदलाव न करें।
begin tran
INSERT INTO Table_1 values('Title 1')
SELECT * FROM [Test].[dbo].[Table_1]
--rollback
अब एक दूसरा क्वेरी संपादक खोलें (डेटाबेस पर), नीचे दिए गए कोड को डालें और निष्पादित करें
begin tran
set transaction isolation level READ UNCOMMITTED
SELECT * FROM [Test].[dbo].[Table_1]
आप देख सकते हैं कि दूसरे संपादक पर आप पहले लेनदेन से नव निर्मित पंक्ति (लेकिन प्रतिबद्ध नहीं) देख सकते हैं। पहले संपादक रोलबैक निष्पादित करें (रोलबैक शब्द का चयन करें और निष्पादित करें)।
-- Rollback the first transaction
rollback
दूसरे संपादक पर क्वेरी निष्पादित करें और आप देखते हैं कि रिकॉर्ड गायब हो गया (फैंटम रीड), यह इसलिए होता है क्योंकि आप बताते हैं, सभी पंक्तियों को प्राप्त करने के लिए 2 लेन-देन के लिए, भी अनकम्फेड।
यह तब होता है जब आप आइसोलेशन स्तर को बदलते हैं
set transaction isolation level READ UNCOMMITTED