Миграция oracle на SQL server - null vs empty
Мы преобразовали базу данных Oracle в базу данных SQL server. Мы столкнулись с проблемой null vs blank.
Сценарий:
в Oracle:
Создать таблицу Student (Sno int, FName varchar(20) not null, MName varchar(30) null,
Lname varchar(20) not null)
Вставить в студенческие годы(СНО имени,Mname,lname в) ценности (10,'Джеймс' ,",'Кларк')
Запись вставляется в Oracle как среднее имя вставляется как null даже если мы передали пустое значение(")
10,Джеймс,нуль,Кларк
Запись вставки в SQL Server в качестве среднего имени вставки как пустого в SQL server (показывая пустое пространство в таблице, даже у нас есть ограничение по умолчанию)
10,Джеймс, Кларк
мы хотим обрабатывать, когда пустая (") вставка в таблицу SQL должна рассматриваться как "null", что аналогично поведению базы данных Oracle.
Что я уже пробовал:
для некоторых существующих триггеров добавлено условие nullif. но у некоторых таблиц у нас нет триггеров и того, как обрабатывать эти таблицы, когда происходит вставка или обновление.
0x01AA
Я бы сказал, что MSSQL прав. Пустая строка-это _не_ нуль ;)
Вставить в студенческие годы(СНО имени,Mname,lname в) ценности (10,'Джеймс' ,значение null,'Кларк') - это правильный путь