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

इकाई डेटा ढांचे से ट्रिगर के बजाय तालिका में डालने पर त्रुटि

एंटिटी फ्रेमवर्क 4.1 का उपयोग करते हुए, ट्रिगर बॉडी के अंत में स्कोप_आईडेंटिटी () का चयन जोड़ने के लिए लादिस्लाव द्वारा पोस्ट किए गए समाधान ने मेरे लिए समस्या हल कर दी। मैंने संपूर्ण ट्रिगर निर्माण को पूर्णता के लिए यहां कॉपी किया है। इस ट्रिगर परिभाषा के साथ मैं संदर्भ का उपयोग करके तालिका में पंक्तियों को जोड़ने में सक्षम था। SaveChanges ()।

ALTER TRIGGER [dbo].[CalcGeoLoc]
   ON  [dbo].[Address]
   INSTEAD OF INSERT
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT OFF;

-- Insert statements for trigger here
INSERT INTO Address (Street, Street2, City, StateProvince, PostalCode, Latitude, Longitude, GeoLoc, Name)
SELECT Street, Street2, City, StateProvince, PostalCode, Latitude, Longitude, geography::Point(Latitude, Longitude, 4326), Name 
FROM Inserted;

select AddressId from [dbo].Address where @@ROWCOUNT > 0 and AddressId = scope_identity();
END

गणना किए गए मानों को संभालने के लिए संपादित करें (टिप्पणियों में क्रिस मॉर्गन के लिए धन्यवाद):

यदि आपके पास तालिका में कोई अन्य गणना मूल्य है तो आपको उन्हें चयन में भी शामिल करना होगा। उदाहरण के लिए यदि आपके पास CreatedDate . है कॉलम जो GETDATE() . का उपयोग करता है आप इस तरह से चयन करेंगे:

SELECT [AddressId], [CreatedDate] from [dbo].Addresses where @@ROWCOUNT > 0 and AddressId = scope_identity();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP में MSSQL में इन्सर्ट आईडी कैसे प्राप्त करें?

  2. चुनिंदा क्वेरी में OFFSET-FETCH विकल्पों द्वारा फ़िल्टरिंग - SQL सर्वर / TSQL ट्यूटोरियल भाग 118

  3. Mssql मॉड्यूल का उपयोग करके Node.JS से विंडोज़ प्रमाणीकरण के साथ SQL सर्वर से कैसे कनेक्ट करें?

  4. अंतिम डाली गई आईडी कैसे प्राप्त करें?

  5. SQL सर्वर 2017 बैकअप -3