Sql server SQL Server导入表保留默认值

Sql server SQL Server导入表保留默认值,sql-server,import,Sql Server,Import,在SQL Server 2008中,我通过右键单击目标数据库并选择>任务>导入数据,将表从一个数据库导入到另一个数据库 当我导入表时,我得到了列名、类型和所有数据,但是我丢失了主键、标识规范和源表中设置的所有默认值。因此,现在我必须再次手动设置每列的所有默认值。是否有任何方法可以通过导入获取默认值,或者甚至通过查询获取默认值 我对这一点非常陌生,在黑暗中挣扎,所以如果这是一个非常愚蠢的问题,请原谅我…尝试为源表生成一个创建脚本,并使用该脚本创建完整的目标表结构。然后使用导入数据向导将数据从源表复

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

当我导入表时,我得到了列名、类型和所有数据,但是我丢失了主键、标识规范和源表中设置的所有默认值。因此,现在我必须再次手动设置每列的所有默认值。是否有任何方法可以通过导入获取默认值,或者甚至通过查询获取默认值


我对这一点非常陌生,在黑暗中挣扎,所以如果这是一个非常愚蠢的问题,请原谅我…

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

您可以使用bcp命令进行此工作,此命令有一个保持标识不变的开关

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

有关更多信息,请参见此。

我发现()上的查询在需要跨多个表获取默认值时非常有用(尤其是在“默认约束”标题下):

我在表格名称周围添加了括号,因为我的一些名称需要识别:

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