DB_NAME() vs ORIGINAL_DB_NAME()

Kenneth Fisher, 2018-03-27 (first published: 2018-03-15)

I’d never seen ORIGINAL_DB_NAME until recently and I thought it would be interesting to highlight it out, and in particular the difference between it and DB_NAME. I use DB_NAME and DB_ID fairly frequently in support queries (for example what database context is a query running from or what database are given DB files from). So starting with DB_NAME.

DB_NAME

Simply enough, if you pass a database_id in, it returns the databases name, if you don’t it returns the current databases name.

USE tempdb;
SELECT DB_NAME();
SELECT DB_NAME(3);

ORIGINAL_DB_NAME

You might think this is always the database the connection initially connected to but you would be wrong. In fact, it returns a blank unless you specify a database to connect to in your connection string or connection options, etc. USE has no effect on the output and neither does your default database. There is also no parameter so this is the only value it will show. Using SQLCMD to make this a bit easier to see:

Without specifying -d (connect to a specific database)

With specifying -d

VS

Honestly, the only possible use I can see for ORIGINAL_DB_NAME is for some forms of logging/auditing. Good information to know, but I’ll still be using DB_NAME 99% of the time.

Rate

Share

Share

Rate

Related content

Database Mirroring FAQ: Can a 2008 SQL instance be used as the witness for a 2005 database mirroring setup?

Question: Can a 2008 SQL instance be used as the witness for a 2005 database mirroring setup? This question was sent to me via email. My reply follows. Can a 2008 SQL instance be used as the witness for a 2005 database mirroring setup? Databases to be mirrored are currently running on 2005 SQL instances but will be upgraded to 2008 SQL in the near future.

Robert Davis

2009-02-23

1,567 reads

Networking – Part 4

You may want to read Part 1 , Part 2 , and Part 3 before continuing. This time around I’d like to talk about social networking. We’ll start with social networking. Facebook, MySpace, and Twitter are all good examples of using technology to let…

Andy Warren

2009-02-17

1,530 reads

Speaking at Community Events – More Thoughts

Last week I posted Speaking at Community Events – Time to Raise the Bar?, a first cut at talking about to what degree we should require experience for speakers at events like SQLSaturday as well as when it might be appropriate to add additional focus/limitations on the presentations that are accepted. I’ve got a few more thoughts on the topic this week, and I look forward to your comments.

Andy Warren

2009-02-13

360 reads