Sql server 计算同一数据库sql server中所有表中显示的数据数

Sql server 计算同一数据库sql server中所有表中显示的数据数,sql-server,Sql Server,我知道如何显示同一数据库中所有表的所有列表,但我想在这里比较同一数据库中所有表的所有列(CPI_名称),以检查是否有任何数据相同 例如,两个或多个不同表中有两个CPI_Name列: 这是我用来比较同一数据库中两个表的方法 SELECT * FROM INFORMATION_SCHEMA.tables SELECT CPI_Name FROM CarryIn INTERSECT SELECT CPI_Name FROM CarryOut 假设我想检查变量1在两个表中出现了多少次,我该怎么办

我知道如何显示同一数据库中所有表的所有列表,但我想在这里比较同一数据库中所有表的所有列(CPI_名称),以检查是否有任何数据相同

例如,两个或多个不同表中有两个CPI_Name列:

这是我用来比较同一数据库中两个表的方法

SELECT * FROM INFORMATION_SCHEMA.tables

SELECT CPI_Name FROM CarryIn
INTERSECT
SELECT CPI_Name FROM CarryOut
假设我想检查变量1在两个表中出现了多少次,我该怎么办


如果我想知道1是否在同一数据库的所有表中出现了多少次?

您可以尝试以下方法:

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。

输出是:从dbo.TableA中选择count(*),其中CPI_Name=1是,您必须执行此语句以查看有多少记录具有提供的列的此值。谢谢!你救了我一天!!mssql中的新手需要像你这样的人!