dsndm82062 2013-06-11 13:39
浏览 238
已采纳

SQL:选择数据库的表中的最后一个id

I have the following query in my php script:

SELECT last_value FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'MYTABLE' AND last_value IS NOT NULL

This works great, it returns the last id from MYTABLE which is what I need.

But, as I'm going to have more than one database I should modify the query to select the database where MYTABLE is.

I'm doing:

SELECT last_value FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'mydatabase.dbo.MYTABLE' AND last_value IS NOT NULL

But this does not work, I get nothing in return.

Any ideas?

Thanks a lot!

  • 写回答

2条回答 默认 最新

  • dounayan3643 2013-06-11 13:48
    关注

    If you need to pass the database name as a variable IDENT_CURRENT accepts a database qualified object name. e.g.:

    SELECT  IDENT_CURRENT('mydatabase.dbo.MYTABLE');
    

    As an unrelated aside it would be better to use:

    WHERE OBJECT_ID = OBJECT_ID(N'MYTABLE');
    

    Instead of

    WHERE OBJECT_NAME(OBJECT_ID) = 'MYTABLE'
    

    Since if MYTABLE was not in the default schema, it would fail, consider a table MYSCHEMA.MYTABLE. This returns no rows

    WHERE OBJECT_NAME(OBJECT_ID) = 'MYSCHEMA.MYTABLE'
    

    Whereas this would:

    WHERE OBJECT_ID = OBJECT_ID(N'MYSCHEMA.MYTABLE');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)