我最近看到,当我发出
select DB_NAME(0)
有一些答案,当我检查sys.databases没有DB ID 0,所以我认为应该有一个NULL返回。 如果我selectDB_NAME(1000)并且没有db id 1000,则返回值为NULL。
我注意到我正在使用的数据库始终显示。
这是正常的吗? 这是一个错误或什么?
我不认为任何数据库将有一个零号码,或一个负数。 根据db_name()的官方Microsoft Books联机文档 :
参数:database_id是要返回的数据库的标识号(ID)。 database_id是int,没有默认值。 如果没有指定ID,则返回当前数据库名称。
所以,我会说这种行为有趣,但它是未定义的,不应该依赖于生产代码。
我一直使用db_name(),没有参数,查找当前数据库的名称。
我不是100%,但不应该使用:
USE <DBNAME> GO SELECT <STATEMENT>
如果我对此感到遗憾。