首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个插入查询会出错?

为什么这个插入查询会出错?
EN

Stack Overflow用户
提问于 2014-02-19 16:52:21
回答 5查看 214关注 0票数 0

我对Microsoft非常陌生,我在这个INSERT查询中遇到了一个问题,这个查询会在一个非常大的表中插入一个新记录(它有很多列)。

我有一个疑问:

代码语言:javascript
复制
INSERT INTO VulnerabilityAlertDocument ([Id], 
                    [VulnerabilityAlertId], 
                    [SourceId], 
                    [BugTraqID], 
                    [Title], 
                    [StatusID], 
                    [CVE], 
                    [Published], 
                    [LastUpdated], 
                    [Remote],
                    [Local],
                    [Credibility],
                    [Classification],
                    [Availability], 
                    [Ease],
                    [Authentication], 
                    [CVSS2_BaseScore], 
                    [CVSS2_TemporalScore], 
                    [CVSS2_BaseVector], 
                    [CVSS2_TemporalVector], 
                    [CVSS1_BaseScore], 
                    [CVSS1_TemporalScore], 
                    [NVD_CVSS2_BaseScore], 
                    [NVD_CVSS2_ComponentString], 
                    [ImpactRating], 
                    [Severity], 
                    [EaseofExploit], 
                    [UrgencyRating], 
                    [LastChange], 
                    [ShortSummary], 
                    [Impact], 
                    [TechnicalDescription], 
                    [AttackScenario], 
                    [Exploit], 
                    [Credit], 
                    [URL], 
                    [AlertStatusId], 
                    [Type], 
                    [DetailLevel], 
                    [Language], 
                    [dd])
VALUES('10000', 
       '10000', 
       'TEST', 
       '5',
       'TEST TITLE',
       '1',
       'TEST CVE',
       '1998-04-30 00:00:00.000',
       '2007-11-05 16:32:34.000',
       'TEST REMOTE',
       'TEST LOCAL',
       'TEST CREDIBILITY',
       'TEST CLASSIFICATION',
       'TEST Availability',
       'TEST EASE',
       'TEST Authentication',
       'TEST CVSS2_BaseScore',
       'TEST VSS2_TemporalScore',
       'TEST CVSS2_BaseVector',
       'TEST VSS2_TemporalVector',
       'TEST CVSS1_BaseScore',
       'TEST CVSS1_TemporalScore',
       'TEST NVD_CVSS2_BaseScore',
       'TEST NVD_CVSS2_ComponentString',
       '2',
       '3',
       '10',
       '7',
       'TEST LastChange',
       'TEST ShortSummary',
       'TEST IMPACT',
       'TEST TechnicalDescription',
       'TEST AttackScenario',
       'TEST Exploit',
       'TEST Credit',
       'TEST URL',
       '5',
       '3',
       '1',
       'TEST Language',
       'NULL');

在其中,我将一个特定的值插入到指定的列中(我通过第一个查询节指定列,并在查询的第二个部分指定相关的值)

问题是,当我尝试执行前面的查询时,会获得以下错误

Msg 544,第16级,状态1,第1行 当VulnerabilityAlertDocument设置为OFF时,无法在表“IDENTITY_INSERT”中插入标识列的显式值。

为什么?这是什么意思?如何更改查询以解决此问题,从而在表中插入记录?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-19 16:53:33

SET IDENTITY_INSERT VulnerabilityAlertDocument ON之前尝试INSERT

INSERT之后添加SET IDENTITY_INSERT VulnerabilityAlertDocument OFF

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 16:55:13

您有一个标识列,然后不需要插入Id,您必须从查询中删除Id和Id的值

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 17:12:35

从列列表中移除Id列及其相应的值“10000”。这个错误是由于您试图用一个值填充一个列,而SQL则抱怨他可以提供一个自动处理的值。顺便说一句,如果列是数字类型的,则不需要引用数值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21887021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档