दिलचस्प पोस्ट
ओक्टेव / मैटलैब: एक वेक्टर में नए तत्व जोड़ना उपयोगकर्ता को नीचे की शीट पर खींचने से अक्षम करना क्या मैं बिना सोचा mysql जोड़ सकते हैं? ईएफ में एक पैरेंट इकाई को अपडेट करते समय चाइल्ड यूनिट्स को जोड़ने / अपडेट करने का तरीका MySQL त्रुटि 1436: सरल क्वेरी के साथ थ्रेड स्टैक ओवररुन सी ++ 11 में धागा_लोक का क्या अर्थ है? जावा में पूर्णांक की श्रेणी सी-स्ट्रैक्ट्स में मेमोरी संरेखण फॉर्म लोड इवेंट कैसे लाएं (वर्तमान में काम नहीं कर रहा है) Appcompat 21 में टूलबार का रंग बदलें एंड्रॉइड एप्लिकेशन / प्रोसेस के अनुसार एकाधिक मैप ऐक्टिविटीज / मैप-वीज का उपयोग कैसे करें सूचीदृश्य आइटम क्लिक करने योग्य नहीं हैं क्यूं कर? बहुत सी सी # सीएसवी रीडर जावा परिणाम के परिणाम की जाँच करें कि क्या कोई परिणाम है या नहीं क्वेरी पर एंड्रॉइड जीपीएस गलत स्थान डेटा

UPDATE स्टेटमेंट्स से प्रभावित पंक्तियों की संख्या वापस लौटाएं

मैं एक संग्रहित प्रक्रिया (SQL Server 2005) में एक UPDATE क्वेरी से प्रभावित पंक्तियों की संख्या कैसे प्राप्त कर सकता हूं, परिणामस्वरूप जैसे

CREATE PROCEDURE UpdateTables AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; UPDATE Table1 Set Column = 0 WHERE Column IS NULL UPDATE Table2 Set Column = 0 WHERE Column IS NULL UPDATE Table3 Set Column = 0 WHERE Column IS NULL UPDATE Table4 Set Column = 0 WHERE Column IS NULL END 

फिर वापसी करें:

 Table1 Table2 Table3 Table4 32 45 0 3 

Solutions Collecting From Web of "UPDATE स्टेटमेंट्स से प्रभावित पंक्तियों की संख्या वापस लौटाएं"

 CREATE PROCEDURE UpdateTables AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @RowCount1 INTEGER DECLARE @RowCount2 INTEGER DECLARE @RowCount3 INTEGER DECLARE @RowCount4 INTEGER UPDATE Table1 Set Column = 0 WHERE Column IS NULL SELECT @RowCount1 = @@ROWCOUNT UPDATE Table2 Set Column = 0 WHERE Column IS NULL SELECT @RowCount2 = @@ROWCOUNT UPDATE Table3 Set Column = 0 WHERE Column IS NULL SELECT @RowCount3 = @@ROWCOUNT UPDATE Table4 Set Column = 0 WHERE Column IS NULL SELECT @RowCount4 = @@ROWCOUNT SELECT @RowCount1 AS Table1, @RowCount2 AS Table2, @RowCount3 AS Table3, @RowCount4 AS Table4 END 

यह वास्तव में SQL सर्वर 2005 में OUTPUT खंड के लिए उत्कृष्ट है।

उदाहरण

 CREATE TABLE [dbo].[test_table]( [LockId] [int] IDENTITY(1,1) NOT NULL, [StartTime] [datetime] NULL, [EndTime] [datetime] NULL, PRIMARY KEY CLUSTERED ( [LockId] ASC ) ON [PRIMARY] ) ON [PRIMARY] INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 07','2009 JUL 07') INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 08','2009 JUL 08') INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 09','2009 JUL 09') INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 10','2009 JUL 10') INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 11','2009 JUL 11') INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 12','2009 JUL 12') INSERT INTO test_table(StartTime, EndTime) VALUES('2009 JUL 13','2009 JUL 13') UPDATE test_table SET StartTime = '2011 JUL 01' OUTPUT INSERTED.* -- INSERTED reflect the value after the UPDATE, INSERT, or MERGE statement is completed WHERE StartTime > '2009 JUL 09' 

निम्नलिखित में परिणाम लौटाए जा रहे हैं

  LockId StartTime EndTime ------------------------------------------------------- 4 2011-07-01 00:00:00.000 2009-07-10 00:00:00.000 5 2011-07-01 00:00:00.000 2009-07-11 00:00:00.000 6 2011-07-01 00:00:00.000 2009-07-12 00:00:00.000 7 2011-07-01 00:00:00.000 2009-07-13 00:00:00.000 

आपके विशेष मामले में, चूंकि आप OUTPUT साथ कुल कार्यों का उपयोग नहीं कर सकते हैं, आपको INSERTED.* की आउटपुट को कैप्चर करने की आवश्यकता है INSERTED.* तालिका चर या अस्थायी तालिका में और अभिलेखों की गणना करें। उदाहरण के लिए,

 DECLARE @temp TABLE ( [LockId] [int], [StartTime] [datetime] NULL, [EndTime] [datetime] NULL ) UPDATE test_table SET StartTime = '2011 JUL 01' OUTPUT INSERTED.* INTO @temp WHERE StartTime > '2009 JUL 09' -- now get the count of affected records SELECT COUNT(*) FROM @temp 

आपको जाने के आंकड़ों को इकट्ठा करना पड़ सकता है, लेकिन @@ROWCOUNT इस पर कब्जा कर लेता है:

 declare @Fish table ( Name varchar(32) ) insert into @Fish values ('Cod') insert into @Fish values ('Salmon') insert into @Fish values ('Butterfish') update @Fish set Name = 'LurpackFish' where Name = 'Butterfish' select @@ROWCOUNT --gives 1 update @Fish set Name = 'Dinner' select @@ROWCOUNT -- gives 3 

सुनिश्चित करें कि कॉलम प्रकार उस मूल्य का समर्थन करता है जिसे आप इसे पास करने का प्रयास कर रहे हैं! एक ही समस्या थी 'क्योंकि मैं एक 13 (आईएनटी) फ़ील्ड की चौड़ाई 13 अंकों का मान संख्या अपडेट करने की कोशिश कर रहा था।