在 sql 服务器的 table 列中添加 current_value
Adding current_value in a table column in sql server
我想将序列的当前值(table1 中的主键)插入到 table2 的列中。
我正在使用: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)
错误:
Incorrect syntax near the keyword 'SELECT'.
如果我单独运行SELECT current_value FROM sys.sequences WHERE [name]= 'DEPT_ID_SEQ'
,效果很好。
DEPT_ID的值是DEPTtable的外键,也是一个序列。
让我知道任何替代方法。最好在一条语句中,因为我必须在 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';
感谢@Tim 学到了新东西:)
但遗憾的是,由于 liquibase 的复杂性,我不得不寻找其他选择:
下面的查询效果很好,也很容易合并到 liquibase 中。
INSERT INTO [dbo].[Employee] ([EMP_ID], [DEPT_ID], [DESCRIPTION])
VALUES (NEXT VALUE FOR EMP_ID_SEQ,
(select CAST(SELECT current_value FROM sys.sequences WHERE [name]= 'DEPT_ID_SEQ') As INT)),
NULL)
我想将序列的当前值(table1 中的主键)插入到 table2 的列中。 我正在使用: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)
错误:
Incorrect syntax near the keyword 'SELECT'.
如果我单独运行SELECT current_value FROM sys.sequences WHERE [name]= 'DEPT_ID_SEQ'
,效果很好。
DEPT_ID的值是DEPTtable的外键,也是一个序列。 让我知道任何替代方法。最好在一条语句中,因为我必须在 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';
感谢@Tim 学到了新东西:) 但遗憾的是,由于 liquibase 的复杂性,我不得不寻找其他选择: 下面的查询效果很好,也很容易合并到 liquibase 中。
INSERT INTO [dbo].[Employee] ([EMP_ID], [DEPT_ID], [DESCRIPTION])
VALUES (NEXT VALUE FOR EMP_ID_SEQ,
(select CAST(SELECT current_value FROM sys.sequences WHERE [name]= 'DEPT_ID_SEQ') As INT)),
NULL)