SQL Server导入表保留默认值

时间:2010-04-06 00:29:49

标签: sql-server import

我在SQL Server 2008中通过右键单击目标数据库并选择>将表从一个数据库导入到另一个数据库;任务>导入数据......

当我导入表时,我得到列名和类型以及所有数据都很好,但是我丢失了主键,标识规范和源表中设置的所有默认值。所以现在我必须再次手动设置每列的所有默认值。有没有办法通过导入获取默认值,甚至在查询之后?

我对此非常陌生并在黑暗中挣扎,如果这是一个非常愚蠢的问题,请原谅我......

3 个答案:

答案 0 :(得分:4)

尝试为源表生成创建脚本,并使用该脚本创建完整的目标表结构。然后使用导入数据向导将源表中的数据复制到新创建的表中。

答案 1 :(得分:0)

你可以使用bcp命令进行这项工作,这个命令有一个保持身份不变的开关。

当您拥有大量数据时,此命令非常有用。

有关详细信息,请参阅此link

答案 2 :(得分:0)

当您需要跨多个表(尤其是在“默认约束”标题下)获取默认值时,我发现对this pagehttps://www.codeproject.com/Tips/823364/Export-Primary-Unique-Foreign-Key-and-Default-Cons)的查询非常有帮助:

由于需要识别我的一些名字,所以在表名的周围加上了括号:

SELECT 'ALTER TABLE [' + s.name +'].[' + t.name +'] ADD CONSTRAINT ' +
 d.name + ' default ' + d.definition + ' FOR [' + c.name + '];'
 FROM sys.default_constraints d
 INNER JOIN sys.columns c ON d.parent_object_id = c.object_id
 AND d.parent_column_id = c.column_id
 INNER JOIN sys.tables t ON t.object_id = c.object_id
 INNER JOIN sys.schemas s ON s.schema_id = t.schema_id