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

SQL सर्वर डेटाबेस में विदेशी कुंजी बाधाओं को फिर से बनाने के लिए स्क्रिप्ट कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 73

परिदृश्य:

जब आप ट्रंकेट स्टेटमेंट चलाते हैं, तो आपको SQL सर्वर डेटाबेस में सभी तालिकाओं को छोटा करने की आवश्यकता होती है, आपको त्रुटि के नीचे त्रुटि मिलती है।
संदेश 4712, स्तर 16, राज्य 1, पंक्ति 43
तालिका 'SchemaName. TableName' क्योंकि यह एक विदेशी कुंजी बाधा द्वारा संदर्भित किया जा रहा है।>मैंने एक पोस्ट लिखी है जिसका उपयोग आप डेटाबेस में ड्रॉप फॉरेन की बाधाओं को उत्पन्न करने के लिए कर सकते हैं। यहां क्लिक करें।
लेकिन इससे पहले कि हम उन्हें छोड़ दें, हमें क्रिएट फॉरेन की कॉन्स्ट्रेन्स स्क्रिप्ट्स जेनरेट करने की आवश्यकता है ताकि हम टेबल को छोटा करने के बाद चला सकें। डेटाबेस से उपयोगकर्ता तालिकाएँ।

'Truncate table '+'['+Schema_name(Schema_id)+'] चुनें।['+name+']' as TruncateTablesScriptfrom sys.tableswhere is_ms_shipped=0 
 
नीचे दी गई स्क्रिप्ट का उपयोग डेटाबेस में विदेशी कुंजी बाधा को पुन:उत्पन्न करने के लिए किया जा सकता है। ) पेरेंटटेबलनाम, ऑब्जेक्ट_नाम (FK.referenced_object_id) रेफरेंसटेबलनाम, FK.name AS विदेशीकीकॉन्स्ट्रेनमनाम, c.नाम RefColumnName के रूप में, cf.name sys.foreign_keys से FK INNER JOIN sys.foreign_key_columns के रूप में FKC पर FKC_columns के रूप में। c.OBJECT_ID =FKC.referenced_object_id और c.column_id =FKC.referenced_column_id पर sys.columns c में शामिल हों cf.OBJECT_ID =FKC.parent_object_id और _id_d_fk.column पर sys.columns cf में शामिल हों। 'तालिका बदलें ['+TableSchemaName+'] चुनें। ['+ParentTableName+']' +' बाधा जोड़ें ' +ForeignKeyConstraintName+ 'विदेशी कुंजी('+सामान((' चुनें ','+CTE_FK से माता-पिता कॉलम सूची जहां i.ForeignKeyConstraintName=o.ForeignKeyConstraintName और i.TableSchemaName=o.TableSchemaName और i.ParentTableName=o.ParentTableName=o.Reference एक्सएमएल पथ ('')), 1, 1, '') +') संदर्भ '+' ['+ TableSchemaName+'] के लिए .ReferenceTableName.['+ReferenceTableName+']('+stuff((','+RefColumnName चुनें) CTE_FK से i जहां i.ForeignKeyConstraintName=o.ForeignKeyConstraintName और i.TableSchemaName=o.TableSchemaName और i.ParentTableName=o.ParentTableName और i.ReferenceTableName=o.ReferenceTableName for xml path('')), 1, 1, '' )+')' AS CreateForeignKeyConstraintScript, ParentTableName, संदर्भटेबलनाम, CTE_FK से विदेशीकी कॉन्स्ट्रेनम नाम या तालिका के अनुसार समूह स्कीमानाम, पेरेंटटेबलनाम, संदर्भटेबलनाम, विदेशीकीकॉन्स्ट्रेननाम
 
 
 
SQL सर्वर डेटाबेस में विदेशी कुंजी बाधा को फिर से बनाने के लिए स्क्रिप्ट कैसे उत्पन्न करें
 CreateForeignKeyConstraintScript कॉलम से परिणाम लें। मेरा सुझाव है कि आप स्क्रिप्ट को पहले DEV या QA में चलाएं ताकि यह सुनिश्चित हो सके कि आपके प्रोडक्शन में चलने से पहले सब ठीक चल रहा है।



वीडियो डेमो :कैसे जनरेट करें SQL सर्वर में विदेशी कुंजी बाधाओं को फिर से बनाने के लिए स्क्रिप्ट

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक सम्मिलित SQL सर्वर में यदि स्थिति का उपयोग करना

  2. लॉगिन द्वारा अनुरोधित डेटाबेस परीक्षण नहीं खोल सकता। लॉगिन विफल रहा। उपयोगकर्ता 'xyz\ASPNET' के लिए लॉगिन विफल

  3. SQL सर्वर में VALUES क्लॉज

  4. क्या मैं pyodbc और MS SQL सर्वर के साथ एक कनेक्शन पर एकाधिक कर्सर का उपयोग कर सकता हूं?

  5. SQL सर्वर में JSON