sql-server - 具有标识插入和序列的插入语句
问题描述
我正在尝试将一些值插入表中,但出现错误。所以基本上我有一个身份列自动插入,但有一次我想关闭它并插入值并再次打开它。因此,为此我创建了一个序列并通过将 id 增加 1 来插入值
SET IDENTITY_INSERT [dbo].[ILevelDataItem] ON
GO
CREATE SEQUENCE iLevelDataitemSeq
START WITH 270
INCREMENT BY 1;
INSERT INTO tblA
SELECT
NEXT VALUE FOR iLevelDataitemSeq,
REPLACE ([ReferenceDescription], 'LTM', 'RP'),
[iLevelId]
FROM
[dbo].[tblA]
GO
SET IDENTITY_INSERT [dbo].[ILevelDataItem] OFF
GO
DROP SEQUENCE iLevelDataitemSeq;
GO
我收到这些错误:
消息 8101,级别 16,状态 1,第 8 行
只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能指定表“dbo.tblA”中标识列的显式值。消息 3701,级别 11,状态 5,第 39 行
无法删除序列“iLevelDataitemSeq”,因为它不存在或您没有权限。
解决方案
我能够通过将所有列名(如插入)添加到 tblA(c1,c2,c3) 值 ('','','') 来解决这个问题
推荐阅读
- swift - 如何快速将完成按钮向右移动
- docker - 如何从 docker-compose 创建的 docker 容器内部连接到本地计算机?
- python - 为什么即使使用 UTF-8 编码,Windows cmd 和 PowerShell 也不能正确显示波斯字符?
- javascript - 锁定方向时了解设备方向
- ios - UIScrollView 中的多个 UITextField 在一定计数后不可点击
- sql - Oracle PL/SQL:SYSDATE 与“DD-MMM-YY”有何不同?
- php - php 7 中的 mysql 支持
- html - 如何防止我的动画结尾突然“卡入”?
- python - 数据框滚动大于 0 计数
- java - 从上述棉花糖设备上的应用程序中清除所有最近的应用程序