我可以直接查询数据库属性而不指定数据库名称吗?

时间:2012-07-06 09:40:09

标签: sql-server azure azure-sql-database

我正在尝试使用代码from this answer查询SQL Azure数据库的最大大小:

SELECT CONVERT(BIGINT, DATABASEPROPERTYEX('DatabaseOfInterestName', 'MaxSizeInBytes')) / 1024

问题是我需要在那里传递数据库名称。因为我需要在具有不同配置的Windows Azure应用程序中使用此代码 - 用于生产,自动构建和测试 - 并且每个配置都使用自己的数据库,我必须将数据库名称传递给该SQL查询,这就是一些在我的代码中额外布线。

有没有办法告诉DATABASEPROPERTYEX()在没有明确指定数据库名称的情况下从当前数据库中查询属性?

2 个答案:

答案 0 :(得分:2)

DB_NAME()功能会完成你的工作吗?

SELECT CONVERT(BIGINT, DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes')) / 1024

答案 1 :(得分:2)

不,是的。不,你不能让DATABASEPROPERTYEX使用当前的数据库。

BUt有SQL来获取当前数据库;)

http://blog.sqlauthority.com/2008/02/12/sql-server-get-current-database-name/

答案是:

SELECT DB_NAME()AS DataBaseName

使用DB_NAME()作为DATABASEPROPERTYEX的输入。