如何从SQL表中导出/备份数据,向表中添加一个可为空的列并导入/恢复数据?

我想要做以下…

  1. 从我当前的数据库表中备份或导出数据
  2. 使用新的可为空的列重新部署(删除并创build)我的数据库
  3. 将所述数据还原或导入数据库。

这可能使用MSSQL? 如果是这样,怎么样?

从命令提示符下:

bcp DBName.dbo.TableName OUT c:\TableName.bcp -N -T -Smydbserver\instance 

然后,删除并重新创build您的表(我不认为有这样做的任何简单的方法)。

为了恢复您的数据,

 bcp DBName.dbo.TableName IN c:\TableName.bcp -N -T -Smydbserver\instance 

您需要为每个表格重复此操作。 它会给你一个数据的二进制副本,然后重新插入。 只要每个字段的长度与旧字段的长度相同,就不会有任何麻烦将数据重新插入不同的模式。

您可能会发现,您不必删除并重新创build您的表以获取可为空的列。 如果列名是相同的,只需使用ALTER TABLE:

ALTER TABLE Table1 ALTER COLUMN MyCol1 nvarchar(50)null

这将更改列types以允许之前为相同的列名和数据types但“不为空”的空值。 有关更多ALTER TABLE语法,请参见http://msdn.microsoft.com/en-us/library/ms190273.aspx