SQL Server 2008 veritabanındaki bir tablo sütununa yapılan tüm başvuruları bulmanın bir yolu var mı? Hangi diğer tabloların veya saklı yordamların veya sütunların başvurulduğunu görüntülemem gerektiğini bilmem gerekiyor. Ada göre (örneğin tablolar, sütunlar, tetikleyiciler) veritabanı nesneleri bulmak gerekiyorsaSQL Server 2008'de bir tablo sütununa yönelik tüm referansları bul
cevap
- bunu yapar SQL Search denilen SERBEST Kırmızı Kapı aracı bir göz - bu dize her türlü için tüm veritabanını arar (ler).
Bu büyük herhangi DBA veya veritabanı geliştiricisi için sahip olması gereken araç var - Zaten bahsetti mi onu SERBEST kullanım her türlü kullanımı kesinlikle var ??
ApexSQL Search gibi bir aracı kullanmayı deneyebilirsiniz. Nesne adlarını arar ancak bağımlı tablolar/görünümlerdeki sütunlar farklı şekilde adlandırılmış olsa bile bağımlı nesnelerin bir listesini arar.
Diğer çözüm, ihtiyaç duyduğunuz verileri almak için sistem görünümlerini ve/veya sistem işlevlerini kullanmaktır. Öneri, ihtiyacınız olan verileri almak için sys.foreign_keys, sys.objects, sys.all_columns
'u kullanmaktır.
Tablo şeması değişikliği nedeniyle etkiyi analiz etmem gerektiğinde, analiz için aşağıdaki adımları kullanıyorum. Bu tam olmayabilir ama yardımcı olabilir!
- Sp_help [TableName]: Bu, tüm FOREIGN KEY kısıtlamalarını bulmamda bana yardımcı olur Referanslar. Ayrıca bu tabloya FOREIGN Key olarak başvuran diğer tabloları da bulabilirim.
- Sp_depends [TableName]: Bu tabloyu kullanarak Prosedürleri, İşlevleri ve Görünümleri bulmanıza yardımcı olur.
- Kaba kuvvet yöntemi: SQL İşler, modüllerde belirli bir anahtar kelime olup olmadığını kontrol etmek farklı Sistemi tablolar ve işlevlerini kullanın, vb Bilginize
: sp_help [TabloAdı] Sp_depends [TabloAdı]
select top 10 * from msdb.dbo.sysjobsteps where command like '%%'
SELECT top 10 Name, OBJECT_DEFINITION(OBJECT_ID)
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%%'
SELECT top 10 OBJECT_NAME(object_id), *
FROM sys.sql_modules
WHERE definition LIKE '%%'
sp_xxx genellikle sys.xxx işlevleri lehine kabul edilmez. Bu durumda sys.dm_sql_referencing_entities(). Hala sp_depends beni doğru yönde işaret etti, bu yüzden +1. –
Daha tam olduğunu düşündüğüm benzer bir sql ifadesi (triggers?): Http://stackoverflow.com/a/30432937/1991614 adresinden, buradaki anahtarların – bitcoder