2016-01-29 2 views
0

Я надеюсь, что кто-то может мне помочь со сценарием/запросом, целевой БД - mySQL.SQL - выберите строки, которые содержат значение NULL в столбце с нулевым значением

База данных, с которой я работаю, не соответствует собственным ограничениям и находится в процессе перехода на MS SQL. То, что я ищу, - это запрос, который может быть запущен против таблицы, которая ищет строки, которые содержат нулевое значение в столбце, который не допускает значения NULL, что, в свою очередь, будет помогать в отладке SSIS DFT.

Большое спасибо.

+0

ли таблица на самом деле есть ограничение? что ты уже испробовал? –

+0

Нет, несколько отдельных столбцов, но некоторые данные не соответствуют ограничениям. В настоящее время мне приходится изменять ограничения на основе ошибок при попытке вставить данные в новую базу данных, так как новая база данных будет обеспечивать ограничения. – Torrm

+0

Как вы определяете, какие столбцы должны допускать NULL. Ваш вопрос кажется мне неясным. –

ответ

1

Try:

SELECT group_concat(`COLUMN_NAME`) as myList 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename' 
-- AND `IS_NULLABLE`='NO' 
into @colname; 
SET @query = CONCAT('SELECT ',@colname,' FROM yourtablename'); 
PREPARE stmt FROM @query; 
EXECUTE stmt; 
+0

Есть ли способ сделать это, который не требует ввода имен столбцов вручную? Спасибо за вашу помощь. – Torrm

+0

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

+0

Спасибо большое, я отдам! – Torrm

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