Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL导入与身份问题_Sql_Sql Server_Database_Compare - Fatal编程技术网

SQL导入与身份问题

SQL导入与身份问题,sql,sql-server,database,compare,Sql,Sql Server,Database,Compare,我有一个使用SQL导出工具创建的数据库,但现在看到我没有写出主键和约束。不幸的是,这是我仅有的数据拷贝 我已经创建了一个带有适当密钥的空白数据库结构,现在正在尝试使用SQL 2012中的导入数据向导将数据导入新数据库。在映射设置中,我选择了启用标识插入。但是,我总是一个接一个地犯错误 然后,我尝试在Visual Studio 2012中使用SQL比较工具,认为我可以生成ALTER table脚本来在保存数据的数据库上创建主键和约束,但我似乎只能让它生成create table脚本。显然,这样做会

我有一个使用SQL导出工具创建的数据库,但现在看到我没有写出主键和约束。不幸的是,这是我仅有的数据拷贝

我已经创建了一个带有适当密钥的空白数据库结构,现在正在尝试使用SQL 2012中的导入数据向导将数据导入新数据库。在映射设置中,我选择了启用标识插入。但是,我总是一个接一个地犯错误

然后,我尝试在Visual Studio 2012中使用SQL比较工具,认为我可以生成ALTER table脚本来在保存数据的数据库上创建主键和约束,但我似乎只能让它生成create table脚本。显然,这样做会删除表,从而删除我的数据

最终,我只想要一个包含键、约束和数据的数据库。我已经用尽了我的知识,现在还不太确定该怎么做

我希望你们中的一些大师有一些技巧可以帮助我。如有任何帮助,我们将提前表示衷心的感谢

启用插入标识”对我有效

也许下次导入带有标识字段的表时,您可以尝试导入标识字段,方法是:

对于在向导的“选择源表和视图”步骤中导入的每个表

选择表>编辑映射>编辑sql>

代码如下所示:

CREATE TABLE [dbo].[miTable] (
[idField] [int] NOT NULL,
[anotherColumns] varchar ...
)
修改如下:

CREATE TABLE [dbo].[miTable] (
[idField] [int] IDENTITY(1,1) NOT NULL,
[anotherColumns] varchar ...
)

不要忘了启用insert identity。

您遇到了什么错误?除非这些错误是关键冲突,否则最好对数据应用结构更改,而不是尝试将数据注入到结构中。如果存在数据将进入目标datanase的间隙,并且表的值小于间隙,则可以尝试将IDENTITY_INSERT从表A中设置为-INSERT RECORDS为A,然后启用IDENTITY_INSERT。在连接工作中,在给定时间,这只是一个表的选项。基本上,允许您为间隙中的标识列指定值。我以为我通过选中“启用标识插入”来关闭标识插入,但我认为它一直受到外键表约束的阻碍。我最终按照Rbaryyoung的建议做了,并更新了结构。乏味,但现在就完成了。我感谢你的帮助和评论。谢谢