Solved

What is Original DB Name when attaching db

Posted on 2003-12-03
10
504 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:Scott Pletcher
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:Scott Pletcher
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
Free Webinar: AWS Backup & DR

Join our upcoming webinar with experts from AWS, CloudBerry Lab, and the Town of Edgartown IT to discuss best practices for simplifying online backup management and cutting costs.

 
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
 
LVL 69

Expert Comment

by:Scott Pletcher
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:Scott Pletcher
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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Having an SQL database can be a big investment for a small company. Hardware, setup and of course, the price of software all add up to a big bill that some companies may not be able to absorb.  Luckily, there is a free version SQL Express, but does …
Let's review the features of new SQL Server 2012 (Denali CTP3). It listed as below: PERCENT_RANK(): PERCENT_RANK() function will returns the percentage value of rank of the values among its group. PERCENT_RANK() function value always in be…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

679 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