我在SQL Server 2008中通过右键单击目标数据库并选择>将表从一个数据库导入到另一个数据库;任务>导入数据......
当我导入表时,我得到列名和类型以及所有数据都很好,但是我丢失了主键,标识规范和源表中设置的所有默认值。所以现在我必须再次手动设置每列的所有默认值。有没有办法通过导入获取默认值,甚至在查询之后?
我对此非常陌生并在黑暗中挣扎,如果这是一个非常愚蠢的问题,请原谅我......
答案 0 :(得分:4)
尝试为源表生成创建脚本,并使用该脚本创建完整的目标表结构。然后使用导入数据向导将源表中的数据复制到新创建的表中。
答案 1 :(得分:0)
答案 2 :(得分:0)
当您需要跨多个表(尤其是在“默认约束”标题下)获取默认值时,我发现对this page(https://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