Solved

What is Original DB Name when attaching db

Posted on 2003-12-03
10
491 Views
Last Modified: 2012-06-27
Hi All,  

We have an application that operates on a named instance of  MSDE.   In the instance there can be 1 -> many databases all with a standard structure.

Anyway,  when we ship a new database the MDF is sent on CD, the application then copies this to a specifed location and attaches it.    Hey presto...

However the snag is that we need to be able to attach the database as the original name of the database, simple enough however, on top of this requirement we need to effectively have the ability to display the original name of the database in an "Attach Database" dialog box (kind of like a file browser dialog which displays the original db name kind of like this:

Please select database to attach:

MyDb  (mydatabase.mdf)
TestDb (anotherdb.mdf)

etc

I am sure that somehow retrievable from unattached MDF since in EM when you select a file to attach it displays the original db name as default in the dialog box.  We dont want to resort to shipping and further files containing this info as that will lead to other problems.

One dirty option we have which we will take if we have no other alternative to is to open the file in a binary stream and append to the end the name, then strip this off before attaching.

Any help would be appreciated.
0
Comment
Question by:ShogunWade
  • 5
  • 4
10 Comments
 
LVL 69

Expert Comment

by:ScottPletcher
ID: 9867053
Not familiar with MSDE, but if the command:

RESTORE HEADERONLY
FROM < backup_device >

is available, you could run that within your app, capture the output, and extract the db name.  That command doesn't require you to know the db name up front.
0
 
LVL 18

Author Comment

by:ShogunWade
ID: 9867111
Trouble is it's not a backp, but rather the MDF file itself.
0
 
LVL 69

Expert Comment

by:ScottPletcher
ID: 9867475
DOH!  Sorry about that.  Don't think I can help.

I've looked thru .MDFs on occassion and haven't see the db name in plain text that I recall.  Perhaps it's in DBCS or encoded in some way.
0
 
LVL 18

Author Comment

by:ShogunWade
ID: 9867916
What method have you used to look into the MDF ?  A binany file viewer or something of that nature ?
0
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

 
LVL 69

Expert Comment

by:ScottPletcher
ID: 9868082
Mostly DBCC PAGE, which does do a binary print essentially, and also just using Word and Notepad.  Also tried doing a string search for the db name in the file ane couldn't find it.  

Of course, when you print using DBCC PAGE, each four bytes of data is "flipped", e.g, if the print out shows "001e0010" for the first four bytes, the actual values are "10001e00" (byte 4 -> 1, byte 3 -> 2, etc.).  Tricky to read.  Didn't verify if it's actually stored that way or just prints that way.
0
 
LVL 18

Accepted Solution

by:
ShogunWade earned 0 total points
ID: 9868426
YES YES YES.


Ive worked it out.  

I traced EM in Profiler and this is how it is done......



dbcc checkprimaryfile (N'C:\mydb.mdf', 2)

returns:

Database name      MyDatabaseName
Database version      539
Collation      872468488


with 0 as the parameter it returns whether it's an MDF or not

and with 3 as the parameter it returns the entire file group filename and virtual name.





0
 
LVL 18

Author Comment

by:ShogunWade
ID: 9868507
Thanks for your input scott hope you dont mind if I reclaim points .
0
 
LVL 69

Expert Comment

by:ScottPletcher
ID: 9868973
No, not at all.  Glad you posted the solution, I'll try to remember that in the future.
0
 
LVL 18

Author Comment

by:ShogunWade
ID: 9873170
I like to share this sort of stuff.

what I forgot to mention is that the call only works on a non attached DB.  It errors on a sharing violation if it is aleady attached.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Why is this different from all of the other step by step guides?  Because I make a living as a DBA and not as a writer and I lived through this experience. Defining the name: When I talk to people they say different names on this subject stuff l…
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now