我想要做以下事情...
- 从我当前的数据库表中备份或导出数据
- 重新部署(删除并创建)我的数据库,使用相同的表和新的可空列
- 将所述数据恢复或导入数据库。
使用 MSSQL 可以实现吗?如果可以,怎么做?
答案1
从命令提示符中:
bcp DBName.dbo.TableName OUT c:\TableName.bcp -N -T -Smydbserver\instance
然后,删除并重新创建您的表(我认为没有任何简单的方法可以做到这一点)。
要恢复您的数据,
bcp DBName.dbo.TableName IN c:\TableName.bcp -N -T -Smydbserver\instance
您需要对每个表重复此操作。它将为您提供数据的二进制副本,然后重新插入。只要每个字段的长度与旧字段的长度相同,您在不同的架构上重新插入数据就不会遇到任何问题。
答案2
您可能会发现,您不必删除并重新创建表即可获取可空列。如果列名相同,只需使用 ALTER TABLE:
更改表 Table1 更改列 MyCol1 nvarchar(50) null
这会将列类型更改为允许为空,而之前列名称和数据类型相同,但“不为空”。请参阅http://msdn.microsoft.com/en-us/library/ms190273.aspx了解更多 ALTER TABLE 语法。