Sql 为什么可以';我不能插入这张表吗?

Sql 为什么可以';我不能插入这张表吗?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,真的,我不知道该问什么 我正在插入一个表,该表的主键有一个UNIQUEIDENTIFIERIDENTITY\u INSERT处于禁用状态,因此我认为可以直接插入而不包含GUID值 但当我运行此脚本时: DECLARE @temp TABLE (id UNIQUEIDENTIFIER) INSERT INTO sBound( --line 4 cPolNum, cName1, dBound, dExpire, ... ~ 40 other columns nQuo

真的,我不知道该问什么

我正在插入一个表,该表的主键有一个
UNIQUEIDENTIFIER
IDENTITY\u INSERT
处于禁用状态,因此我认为可以直接插入而不包含GUID值

但当我运行此脚本时:

DECLARE @temp TABLE (id UNIQUEIDENTIFIER)

INSERT INTO sBound( --line 4
        cPolNum, cName1, dBound, dExpire, ... ~ 40 other columns
        nQuoteNum
        )
OUTPUT INSERTED.iRowID INTO @temp (id) 
(SELECT TOP 1
        cPolNum, cName1, dBound, dExpire, ... ~ 40 other columns
        3680189 
    FROM
        sBound 
    WHERE
        iRowID = '14863E9C-6AE7-4B7A-916D-038ECBFA4668');

DECLARE @newID UNIQUEIDENTIFIER
SELECT @newID = id
FROM @temp;

UPDATE sQuote --line 21
    SET 
        iRowID = @newID
    WHERE
        iRowID = 'AA030454-BFC9-E411-B421-0015176857B6'
我得到了这个错误:

Msg 544, Level 16, State 1, Line 4
Cannot insert explicit value for identity column in table 'sBound' when IDENTITY_INSERT is set to OFF.
Msg 515, Level 16, State 2, Line 21
Cannot insert the value NULL into column 'iRowID', table 'NREngine.dbo.sQuote'; column does not allow nulls. UPDATE fails.
The statement has been terminated.
为什么它告诉我不能为标识列插入值?我没有为标识列提供值。我应该找什么


如果我不能显式地提供值,并且不能提供值,那么我如何插入到其中?

标识列不能是GUID

运行此命令可帮助您查找表中的标识列:

SP_HELP 'sBound'

也许我误解了,但是如果关闭标识插入,则需要在查询中手动提供标识。发生第二个错误的原因是第9行中的输出为null(未插入任何内容)。
sBound
中的标识列是未提供值的
iRowID
。标识列不能是GUID。我想你搞错了,表中的哪一列是标识列。@JosephNields:这只意味着它是主键。这并不意味着它是一个标识列。运行此命令:
SP\u帮助“sBound”
。这将帮助您识别标识列。