insert - 在sql server的表列中添加current_value
问题描述
我想将序列的当前值(表 1 中的主键)插入到表 2 的列中。我正在使用:MS SQL SERVER 2016
查询我试过:
INSERT INTO [dbo].[Employee] ([EMP_ID], [DEPT_ID], [DESCRIPTION])
VALUES (NEXT VALUE FOR EMP_ID_SEQ,
SELECT current_value FROM sys.sequences WHERE [name]= 'DEPT_ID_SEQ',
NULL)
错误:
关键字“SELECT”附近的语法不正确。
如果我SELECT current_value FROM sys.sequences WHERE [name]= 'DEPT_ID_SEQ'
单独运行,它运行良好。
DEPT_ID 的值是一个 FK 到 DEPT 表,也是一个序列。让我知道任何替代方法。最好在单个语句中,因为我必须在 liquibase 标记中塑造它并通过 liquibase 更新运行整个查询。
解决方案
使用INSERT INTO ... SELECT
:
INSERT INTO [dbo].[Employee] ([EMP_ID], [DEPT_ID], [DESCRIPTION])
CONVERT(int, SELECT NEXT VALUE FOR EMP_ID_SEQ), current_value, NULL
FROM sys.sequences WHERE [name] = 'DEPT_ID_SEQ';
推荐阅读
- r - geom_area 具有分布在多列中的分组变量
- javascript - Hyperledger Fabric Couchdb 查询使用数组属性中的“字段”来减少返回
- gremlin - 在 Gremlin 中查找异常值以查找具有 N 条以上边的节点?
- powershell - 创建文件会更改创建作业时写入主机的内容
- azure-devops - Azure Dev Ops:有没有办法在一个组/团队的讨论字段中隐藏另一个组/团队的评论?
- mysql - 加入mysql选择更多行
- laravel - Composer packagist 找不到包的版本
- python - Python中总物品限制的背包问题
- google-chrome-extension - 为什么谷歌拒绝我的引用黄色镁的网络扩展
- jquery - 如何在 jQuery 中使用 WooCommerce 产品基础价格 | 重力形式