Я хочу сделать следующее ...
Возможно ли это с помощью MSSQL? Если да, то как?
Вы можете обнаружить, что вам не нужно отбрасывать и заново создавать таблицу, чтобы получить столбцы, допускающие значение NULL. Если имена столбцов совпадают, просто используйте ALTER TABLE:
ALTER TABLE Table1 ALTER COLUMN MyCol1 nvarchar (50) null
Это изменяет тип столбца, чтобы разрешить пустые значения там, где раньше было такое же имя столбца и тип данных, но «не было пустым». Видеть http://msdn.microsoft.com/en-us/library/ms190273.aspx для получения дополнительной информации о синтаксисе ALTER TABLE.
Из командной строки:
bcp DBName.dbo.TableName OUT c:\TableName.bcp -N -T -Smydbserver\instance
Затем отбросьте и заново создайте свои таблицы (я не думаю, что есть простой способ сделать это).
Чтобы вернуть свои данные,
bcp DBName.dbo.TableName IN c:\TableName.bcp -N -T -Smydbserver\instance
Вам нужно будет повторить это для каждой таблицы. Он предоставит вам двоичную копию данных, которая затем будет повторно вставлена. Пока каждое поле имеет ту же длину, что и старое, у вас не должно возникнуть проблем с повторной вставкой данных в другую схему.