2012-03-13 16 views
39

में सभी तालिकाओं में किसी निश्चित प्रकार के सभी कॉलम खोजें SQL सर्वर डेटाबेस में सभी तालिकाओं में मैं किसी निश्चित प्रकार के सभी कॉलम (उदाहरण के लिए NTEXT) कैसे ढूंढ सकता हूं?SQL सर्वर डेटाबेस

मैं एक एसक्यूएल क्वेरी की तलाश में हूं।

उत्तर

68

: की तरह कुछ की कोशिश करो।

SELECT 
    table_name 
FROM 
    INFORMATION_SCHEMA.TABLES T 
WHERE 
    T.TABLE_CATALOG = 'MyDatabase' AND 
    EXISTS ( 
     SELECT * 
     FROM INFORMATION_SCHEMA.COLUMNS C 
     WHERE 
      C.TABLE_CATALOG = T.TABLE_CATALOG AND 
      C.TABLE_SCHEMA = T.TABLE_SCHEMA AND 
      C.TABLE_NAME = T.TABLE_NAME AND 
      (C.DATA_TYPE = 'binary' OR 
      C.DATA_TYPE = 'varbinary' OR 
      C.DATA_TYPE = 'text' OR 
      C.DATA_TYPE = 'ntext' OR 
      C.DATA_TYPE = 'image') 
      ) 
+0

कोशिश कर सकते हैं यह भी देखा गया शामिल होंगे – Daniel

2

आप सिस्टम दृश्य INFORMATION_SCHEMA.COLUMNS का उपयोग कर सकते हैं। data_type कॉलम में आप जो खोज रहे हैं वह है।

9

आपको INFORMATION_SCHEMA की आवश्यकता होगी। आप निम्न क्वेरी का उपयोग कर सकते हैं क्षेत्रों

SELECT table_name [Table Name], column_name [Column Name] 
FROM information_schema.columns where data_type = 'NTEXT' 
2

मैं सभी तालिकाओं कि संभवतः बाइनरी डेटा/फ़ाइलों पकड़ सकता है खोजने के लिए निम्नलिखित वक्तव्य का उपयोग किया था वापस जाने के लिए

SELECT c.* from INFORMATION_SCHEMA.columns c 
INNER JOIN INFORMATION_SCHEMA.tables t ON t.table_name = c.table_name 
WHERE c.data_type = 'int' AND t.table_type = 'base table' 
3

इसके अलावा, आप

SELECT OBJECT_NAME(c.OBJECT_ID) TableName, c.name ColumnName 
FROM sys.columns AS c 
JOIN sys.types AS t ON c.user_type_id=t.user_type_id 
WHERE t.name = 'ntext' 
ORDER BY c.OBJECT_ID; 
GO 
संबंधित मुद्दे