Проверка данных при переносе с одного сервера на другой в SQL server.
Я хочу проверить данные ниже столбца в соответствии с определенным типом данных и нулевыми значениями.
Столбец1 числовые(18,8) нуль
Column2 Varchar(10) not null
Column3 Int not null
Столбец_4 инт нуль
column5 бит not null
column6 бит null
column7 datetime null
-- Как проверить значение в столбце 6 типа бит
Что я уже пробовал:
Я уже пробовал--
ВЫБИРАТЬ
Случай, когда Column1 не является нулевым и является числовым(Column1)<>1, ТО 0 ELSE 1 заканчивается как 'Column1',
Случай, когда Столбец2 имеет значение null или Столбец2=" или " лен " (Столбец2) и GT;50 ТО 0, иначе 1 конец как 'Столбец2',
Случай, когда ISNULL(Column3,")=" или Column3 типа '%[^0-9]%' , ТО 0 ELSE 1 заканчивается как 'Column3',
Случай, когда ISNULL(Column4,")<>" И Column4 не похожи на '%[^0-9]%', ТО 0 ELSE 1 заканчивается как 'Column4'
Случай, когда column7 не является нулевым и ISDATE(column7)=0, то 50 ELSE 0 заканчивается как 'column7'
ИЗ ТАБЛ. 1
Kornfeld Eliyahu Peter
Если столбец имеет тип X и NULL/NOT NULL, вы не сможете вставить какие-либо другие данные, так зачем проверять?! SQL создаст для вас исключение...
suneel kumar gupta
У меня есть столбец, который допускает битовое значение или нулевое значение, тогда как я должен проверить это условие.
Kornfeld Eliyahu Peter
Вы не должны - SQL будет, и если значение не подходит, у вас будет исключение!!!
suneel kumar gupta
на самом деле я хочу перенести данные с другого сервера через планировщик (задание SQL), и если проверка данных не удалась, то я хочу сохранить, в каких столбцах данные недействительны.
Допустим, у меня есть 5 столбцов, и при проверке данных в 2 столбцах данные недопустимы, чем имя столбца хранилища и пользовательская ошибка, определенная для столбца than.
Kornfeld Eliyahu Peter
Если вы переходите с SQL на SQL, то как данные могут быть недействительными? Вы переезжаете данных nvarchar в тип int или float для бит? Если столбцы в источнике и цели имеют одинаковое объявление типа, то вам нечего бояться...
suneel kumar gupta
да , может быть, потому, что данные предоставляются от разных разных поставщиков.
Kornfeld Eliyahu Peter
Поставщик не имеет значения. Пока вы двигаетесь от бита к биту и от Инта к Инту...
Если вы хотите конвертировать данные, вы не можете иметь что-то автоматическое, но вы должны писать запросы для преобразования таблицы в таблицу...
Mike V Baker
Я думаю, что существует мысль о том, что база данных другого поставщика может быть не настроена с этими ограничениями, поэтому suneel пытается сначала проверить данные.
Mike V Baker
В этом случае (значение столбца 6 бит) Я бы, вероятно, рассматривал входящий 0 как 0, NULL как NULL, а все остальное как 1
У меня есть к вам вопрос, эта схема проверки входящих данных... как вы записываете, что некоторые записи не прошли проверку? Существует ли отчет об исключениях с текстовым полем, содержащим входящие необработанные данные?