2016-03-22 1 views
0

Я знаю, как показать весь список для всех таблиц в одной базе данных, но я хочу здесь сравнить все столбцы (CPI_Name) для всех таблицы в одной базе данных, чтобы проверить, есть ли какие-либо данные.Подсчет чисел, которые отображаются во всех таблицах в одном сервере sql базы данных

Например, есть два 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, сколько раз в обеих таблицах, что мне делать?

ИЛИ

Если я хочу знать, если 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

вывод: select count (*) from dbo.TableA WHERE CPI_Name = 1 –

+0

Да, вам нужно будет выполнить этот оператор, чтобы узнать, сколько записей имеет это значение для поставленного столбца. – AKS

+0

Спасибо! ты спасаешь мой день! новичкам в mssql нужны парни, как вы! –

Смежные вопросы