我正在尝试解决当我尝试插入/追加到Azure SQL数据库时遇到的错误。
我得到的错误:
错误:在数据库中写入数据(353):在" NoTable"上运行PreSQL时出错:用于SQL Server的Microsoft OLE DB提供程序:表格中的标识列的显式值' CHART&# 39;只能在使用列列表且IDENTITY_INSERT为ON时指定。\ 42000 = 8101
我用来执行插入的工具是Future.traverse
,这是一个出色的数据混合和高级分析工具,特别是Write Data In-Database工具。
准备命令时会创建临时存储过程。发布会话时,将删除所有临时存储过程。
准备命令时会创建临时存储过程。当命令未准备好,指定新命令或释放对命令的所有应用程序引用时,将删除该过程。
问题1:临时存储过程是否依赖于全局临时表?如果是这样,这可能是我的错误的原因,因为Azure SQL数据库不支持全局临时变量吗?
问题2: Use Procedure To Prepare
参数是否可选?如果这实际上是我遇到的问题,我希望可以从连接字符串中删除此参数,并避免创建全局临时表。
编辑:尽管错误消息表明我试图插入标识列,但事实并非如此。我相信错误消息的开头指定" No Table"是系统正在寻找Alteryx 10.0
的提示提前感谢您输入。
答案 0 :(得分:1)
表格中的标识列的显式值' CHART'只能在使用列列表且IDENTITY_INSERT为ON时指定。
该错误消息表示您正在尝试将INSERT
数据放入IDENTITY
表格中的CHART
列。它还提出了一个解决方案。包括列列表并启用标识插入。你可以这样做:
SET IDENTITY_INSERT CHART ON;
INSERT CHART(column1, column2)
VALUES (value1, value2);
SET IDENTITY_INSERT CHART OFF;
或者,您可以不尝试插入标识值并将其留给SQL Server。 IDENTITY
列是SQL Server自动计算的值。如果我们想手动设置它,我们需要明确说明,如果我们不想手动设置它,那么我们就不会在VALUES
列表中包含值。