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