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

SQL सर्वर 2012:सम्मिलित और ट्रिगर के बीच DATETIME विसंगतियां

SQL की घोषणात्मक प्रकृति के कारण, डेटाबेस इंजन हो सकता है SQL कथन के कुछ हिस्सों का मूल्यांकन किसी भी क्रम में करने के लिए स्वतंत्रता लें जो इसे फिट देखता है (जब तक यह शब्दार्थ को प्रभावित नहीं करता है)। आपका सुझाव है कि GETUTCDATE() कैश किया जा सकता है, एक प्रशंसनीय है।

मुझे पता है कि यह आपके प्रश्न का उत्तर नहीं देता है। लेकिन SQL2012 में GETUTCDATE का जो भी कार्यान्वयन हो, वह भविष्य के संस्करण में अच्छी तरह से बदल सकता है। तो इस पर भरोसा करने से बचें, या भविष्य के उन्नयन एक वास्तविक दर्द बन सकते हैं। अपने तर्क को इस तरह से लागू करें जो मूल्यांकन आदेश के संबंध में किसी भी धारणा पर निर्भर न हो।

आपके विशिष्ट मामले में, मुझे कुछ संभावित समाधान दिखाई दे रहे हैं।

  1. अगर आपको OwningStatuses से कोई समस्या नहीं है थोड़ा समय बिताने के बाद बाद में UserStatusesHistory . की तुलना में , तो यह पहले से ही मदद कर सकता है यदि आप तीसरे चरण को SQL सर्वर पर एक अलग बैच के रूप में भेजते हैं।
  2. चरण 2 और 3 स्वैप करें; और ट्रिगर क्वेरी OwningStatuses . दें अपनी तिथि तय करने के बजाय।
  3. ट्रिगर का उपयोग करना बंद करें; इस पर विचार करने के एक से अधिक कारण हैं।


  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. ASP.NET MVC 5 एप्लिकेशन के लिए समय क्षेत्र कैसे सेट करें?

  4. SqlCommand का उपयोग करना, इसके ऑब्जेक्ट में एकाधिक पैरामीटर कैसे जोड़ना है, sql तालिका में Winform के माध्यम से सम्मिलन करना

  5. एसक्यूएल सर्वर 2008 में भूगोल डेटाटाइप कितना अच्छा है?