从数据库内部数据流中获取列的最大值

时间:2018-08-07 09:34:33

标签: sql-server ssis etl

我想创建一个SSIS包以将调查数据从EXCEL文件导入SQL Server表。该表的第一列是MyCustomProperties,每次插入新记录时都必须递增。因此,我想在每次插入之前获取变量中列的RESPONSE_ID,将此变量加1并将其用于下一条记录。拜托,我该怎么办?

注意:将MAX(RESPONSE_ID)设置为RESPONSE_ID并没有用,因此它会自动递增。

谢谢

2 个答案:

答案 0 :(得分:1)

DBCC CHECKIDENT管理命令用于重置身份计数器。命令语法为:

DBCC CHECKIDENT (table_name [, { NORESEED | { RESEED [, new_reseed_value ]}}])
[ WITH NO_INFOMSGS ]

示例:

DBCC CHECKIDENT ('[TestTable]', RESEED, 0);
GO

答案 1 :(得分:0)

好的,如果要删除行。您可能需要重新设置ID列的种子。您可以这样操作:

DECLARE @Max INT;
SET @Max = (SELECT MAX (identity_column_name) FROM table_name);
DBCC CHECKIDENT('table_name', RESEED, @Max);