我正在尝试从数据库表中获取最大 ID,并希望在 win 表单加载时显示它。我正在使用以下查询来获取最大 ID。
SELECT ISNULL(MAX(ID),0)+1 FROM StockMain WHERE VRDATE = '2013-01-30'
上面应该返回今天的最大ID。例如,如果我第一次执行此语句,它将返回值'1'。在 ID = '1' 上保存第一条记录后,它应该给我 MAX(ID) = '2'。但它返回值 1。
任何建议或解决方案????
我正在尝试从数据库表中获取最大 ID,并希望在 win 表单加载时显示它。我正在使用以下查询来获取最大 ID。
SELECT ISNULL(MAX(ID),0)+1 FROM StockMain WHERE VRDATE = '2013-01-30'
上面应该返回今天的最大ID。例如,如果我第一次执行此语句,它将返回值'1'。在 ID = '1' 上保存第一条记录后,它应该给我 MAX(ID) = '2'。但它返回值 1。
任何建议或解决方案????
疯狂的猜测......但是什么数据类型是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 值?