0

我正在尝试从数据库表中获取最大 ID,并希望在 win 表单加载时显示它。我正在使用以下查询来获取最大 ID。

SELECT ISNULL(MAX(ID),0)+1  FROM StockMain WHERE VRDATE = '2013-01-30'

上面应该返回今天的最大ID。例如,如果我第一次执行此语句,它将返回值'1'。在 ID = '1' 上保存第一条记录后,它应该给我 MAX(ID) = '2'。但它返回值 1。

任何建议或解决方案????

4

1 回答 1

0

疯狂的猜测......但是什么数据类型是VRDATE?它是否包含时间组件,还是只是一个日期?

如果它包含指示您何时保存记录的时间组件,它将不会通过VRDATE = '2013-01-30'检查,因为这默认为午夜的时间。由于时间不相同,所以它们不相等。

相反,请尝试:

SELECT ISNULL(MAX(ID),0)+1  
FROM StockMain 
WHERE VRDATE BETWEEN '2013-01-30' AND '2013-02-01'

下一个问题...您是否考虑过使用IDENTITY列而不是手动管理 ID 值?

于 2013-01-30T07:51:14.523 回答