2016-03-22 19 views
0

我知道如何顯示同一個數據庫中所有表的所有列表,但我想在這裏比較所有列(CPI_Name)表在同一個數據庫中檢查是否有任何數據是相同的。計數出現在同一個數據庫sql server中的所有表中的數字數據

例如,有一個從兩個不同的表或更多個CPI_Name柱:

enter image description here

enter image description here

這是我使用在同一數據庫兩個表之間進行比較的方式。

SELECT * FROM INFORMATION_SCHEMA.tables 

SELECT CPI_Name FROM CarryIn 
INTERSECT 
SELECT CPI_Name FROM CarryOut 

假設我想檢查變量1在兩個表中出現了多少次,我應該怎麼做?

OR

如果我想知道,如果有1出現多少次在同一個數據庫中的所有表?

回答

0

你可以嘗試這樣的事情:

DECLARE @ColumnName VARCHAR(20) = 'CPI_Name' 
DECLARE @VariableValue VARCHAR(20) = '1' 
SELECT 'select count(*) from ' + TABLE_SCHEMA + '.' + TABLE_NAME + ' WHERE ' + @ColumnName + ' = ' + CONVERT(VARCHAR(20), @VariableValue) 
FROM INFORMATION_SCHEMA.columns 
WHERE COLUMN_NAME = @ColumnName 

你將不得不遍歷返回的行和執行SQL返回。

+0

輸出是:從dbo.TableA WHERE CPI_Name = 1 –

+0

select count(*)是的,您將不得不執行此語句以查看有多少條記錄具有該列提供的值。 – AKS

+0

謝謝!你拯救我的一天!新手在mssql需要像你這樣的人! –

相關問題