2009-12-24 27 views

उत्तर

8

प्रतिबन्ध और सूचियों को स्वचालित रूप से बदल दिया जाएगा, लेकिन आप मैन्युअल रूप से संग्रहित प्रक्रियाओं, ट्रिगर, उपयोगकर्ता परिभाषित काम करता है, और विचारों का संदर्भ में काम के नाम कैसे बदलूं करने की आवश्यकता होगी टेबल। the documentation on MSDN देखें।

+0

मुझे सुबह की अनावश्यक काम बचाने के लिए बड़ा धन्यवाद :-) – EvilDr

7

नहीं, तालिका नाम परिवर्तन सिस्टम कैटलॉग में अपरिपक्व मेटाडाटा को भी अपडेट करेगा और इसलिए बाधा अभी भी सही तालिका का संदर्भ देगी।

आप अपनी इच्छा को सत्यापित करने के लिए सभी विदेशी कुंजी की पहचान करने के लिए निम्न स्क्रिप्ट का उपयोग कर सकते हैं।

SELECT PKTABLE_QUALIFIER = CONVERT(SYSNAME,DB_NAME()), 
     PKTABLE_OWNER = CONVERT(SYSNAME,SCHEMA_NAME(O1.SCHEMA_ID)), 
     PKTABLE_NAME = CONVERT(SYSNAME,O1.NAME), 
     PKCOLUMN_NAME = CONVERT(SYSNAME,C1.NAME), 
     FKTABLE_QUALIFIER = CONVERT(SYSNAME,DB_NAME()), 
     FKTABLE_OWNER = CONVERT(SYSNAME,SCHEMA_NAME(O2.SCHEMA_ID)), 
     FKTABLE_NAME = CONVERT(SYSNAME,O2.NAME), 
     FKCOLUMN_NAME = CONVERT(SYSNAME,C2.NAME), 
     -- Force the column to be non-nullable (see SQL BU 325751) 
     --KEY_SEQ    = isnull(convert(smallint,k.constraint_column_id), sysconv(smallint,0)), 
     UPDATE_RULE = CONVERT(SMALLINT,CASE OBJECTPROPERTY(F.OBJECT_ID,'CnstIsUpdateCascade') 
             WHEN 1 THEN 0 
             ELSE 1 
             END), 
     DELETE_RULE = CONVERT(SMALLINT,CASE OBJECTPROPERTY(F.OBJECT_ID,'CnstIsDeleteCascade') 
             WHEN 1 THEN 0 
             ELSE 1 
             END), 
     FK_NAME = CONVERT(SYSNAME,OBJECT_NAME(F.OBJECT_ID)), 
     PK_NAME = CONVERT(SYSNAME,I.NAME), 
     DEFERRABILITY = CONVERT(SMALLINT,7) -- SQL_NOT_DEFERRABLE 
FROM SYS.ALL_OBJECTS O1, 
     SYS.ALL_OBJECTS O2, 
     SYS.ALL_COLUMNS C1, 
     SYS.ALL_COLUMNS C2, 
     SYS.FOREIGN_KEYS F 
     INNER JOIN SYS.FOREIGN_KEY_COLUMNS K 
     ON (K.CONSTRAINT_OBJECT_ID = F.OBJECT_ID) 
     INNER JOIN SYS.INDEXES I 
     ON (F.REFERENCED_OBJECT_ID = I.OBJECT_ID 
      AND F.KEY_INDEX_ID = I.INDEX_ID) 
WHERE O1.OBJECT_ID = F.REFERENCED_OBJECT_ID 
     AND O2.OBJECT_ID = F.PARENT_OBJECT_ID 
     AND C1.OBJECT_ID = F.REFERENCED_OBJECT_ID 
     AND C2.OBJECT_ID = F.PARENT_OBJECT_ID 
     AND C1.COLUMN_ID = K.REFERENCED_COLUMN_ID 
     AND C2.COLUMN_ID = K.PARENT_COLUMN_ID 

यह स्क्रिप्ट से प्राप्त किया गया था: Identify all of your foreign keys in a SQL Server database

+0

यह वास्तव में ओसम सामग्री दोस्त है। धन्यवाद –

+0

आपका स्वागत है, मदद करने में खुशी है। –

+0

[यहां] (http://stackoverflow.com/questions/8094156/know-relationships-between-all-the-tables-of-database-in-sql-server) ** एक और स्क्रिप्ट ** है, आशा किसी की मदद करती है । – stom

संबंधित मुद्दे