2009-12-24 20 views

cevap

8

Baskılar ve endeksler otomatik olarak yeniden adlandırılır, ancak el ile saklı prosedürler başvurmak, tetikleyiciler, kullanıcı tanımlı işlevler ve görünümler iş adlandırmak yapmak gerekecektir masa Bakınız the documentation on MSDN.

+0

Bir sabahın gereksiz işini kurtardığın için teşekkürler. – EvilDr

7

Hayır, tablo adı değişikliği, sistem kataloglarındaki uygun meta verileri de güncelleştirmiş olacak ve bu nedenle kısıtlama hala doğru tabloya başvuruda bulunacaktır.

Değişikliklerinizi doğrulamak için tüm yabancı anahtarları tanımlamak üzere aşağıdaki komut dosyasını kullanabilirsiniz.

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 

Bu komut kaynaklandığını: Identify all of your foreign keys in a SQL Server database

+0

Gerçekten osum şeyler dude.Thanks –

+0

Size yardımcı olmaktan memnuniyet duyarız. –

+0

[burada] (http://stackoverflow.com/questions/8094156/know-relationships-between-all-the-tables-of-database-in-sql-server) ** başka bir betiktir **, umarım birilerine yardımcı olur . – stom