我创建了一个数据库,我使用 uniqueidentifier 作为主键。我正在尝试运行最终看起来像这样的参数化查询。(插入 someTable (uniqueID) Values('76c14693-5475-4224-ba94-7d30c919ac59') (uniqueID 是我的 PK)。当我在 SQL Server Management Studio 中运行它时,此插入语句执行没有问题,但是,当我尝试从我的代码中运行它。
错误:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“someTable”中插入标识列的显式值。
我查了一下,有很多关于打开 IDENTITY_INSERT 的建议,但它们都使用存储过程。我需要能够使用参数化查询来做到这一点。或者我需要一种方法来获取数据库中新创建的 guid。这似乎是每个人在某个时候都需要的东西。有没有简单的解决方案?
PS。我需要该 ID,因为我需要使用该 ID 将记录添加到其他表。
编辑:
这是有问题的表的结构
CREATE TABLE [dbo].[someTable]
(
[NewsID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_someTable_NewsID] DEFAULT (newid()),
[ShortTitle] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DateCreated] [datetime] NULL CONSTRAINT [DF_someTable_DateCreated] DEFAULT (getdate()),
CONSTRAINT [PK_cmc_News_1] PRIMARY KEY CLUSTERED (
[NewsID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF
) ON [PRIMARY]
) ON [PRIMARY]