我正在尝试使用以下代码构建表 - 创建表时没有错误,我可以看到结构,它显示IDENTITY_INSERT
设置为ON
.
CREATE TABLE lt_percent_cs
(
id_key INT IDENTITY PRIMARY KEY,
customer_no INT ,
season INT,
percentage DECIMAL,
created_by VARCHAR(15) NULL,
create_dt DATETIME NULL,
last_updated_by VARCHAR(15) NULL,
last_update_dt DATETIME NULL,
create_loc VARCHAR(16) NULL
) ON [primary]
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].lt_percent_cs
ADD CONSTRAINT [lt_percent_created_by]
DEFAULT (user_name()) FOR [created_by]
GO
ALTER TABLE [dbo].lt_percent_cs
ADD CONSTRAINT [lt_percent_create_dt]
DEFAULT (getdate()) FOR [create_dt]
GO
ALTER TABLE [dbo].lt_percent_cs
ADD CONSTRAINT [lt_percent_create_loc]
DEFAULT [dbo].fs_location() FOR [create_loc]
GO
SET IDENTITY_INSERT lt_percent_cs ON
尝试插入数据时出现以下错误(通过应用程序而不是通过代码)。
最后一个错误:数据库更新失败:
dataobject=sqlca.sqlerrtext=SQLSTATE = 42000当 IDENTITY_INSERT 设置为 OFF 时
,SQL Server 的 Microsoft OLE DB 提供程序
无法在表 'lt_percent_cs' 中插入标识列的显式值。没有对数据库进行任何更改。
插入 lt_percent_cs (id_key, customer_no, season, percent)
VALUES (54891, 80055514, 2017, 50)sqlca.sqldbcode=544
sqlsyntax:
INSERT INTO lt_percent_cs (id_key, customer_no, season, percent) VALUES (54891, 80055514, 2017, 50)行:1 [nvo_ds_database.uf_update.34 (544)]
我应该在 SQL Server Management Studio 中运行脚本时添加,它可以正常工作并且不会产生错误。
INSERT INTO lt_percent_cs (id_key, customer_no, season, percentage)
VALUES (54891, 80055514, 2017, 50)
有什么想法吗?