2016-03-22 16 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需要像你这样的人! –

相关问题