SQL 2012 Express, sqlcmd, Restore Database, user tables not restored.

I have a script running sqlcmd to restore a database. It does not restore user tables, but does not give any errors. If I restore from the Management Studio, it works. Any idea what I am doing wrong?

Below is the syntax and the message:

RESTORE DATABASE PGMS
   FROM DISK = '\\SVR04\SVR04C\Backups\SVR04Apps\SQLSVR04.bak'
   WITH
     MOVE 'master'  TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\PGMS.mdf',
     MOVE 'mastlog' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\PGMS.LDF',
     REPLACE,
     RECOVERY

Processed 424 pages for database 'PGMS', file 'master' on file 1.
Processed 3 pages for database 'PGMS', file 'mastlog' on file 1.
RESTORE DATABASE successfully processed 427 pages in 0.168 seconds (19.816 MB/sec).
MikeBroderickAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Santosh GuptaCommented:
you are using Windows Authentication or SQL Server Authentication.

if Windows Authentication, try "Run as administrator"
0
Anthony PerkinsCommented:
Unfortunately. you cannot restore the master database that way.  Why don't you tell us what you are really trying to do?
0
MikeBroderickAuthor Commented:
I am using Windows Authentication. I tried "Run as Admin", same error.
0
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

MikeBroderickAuthor Commented:
Sorry, I'm not trying to restore the master database. I am trying to restore a production database called PGMS. Apparently its logical file names are master and mastlog.
0
Anthony PerkinsCommented:
Apparently its logical file names are master and mastlog.
Are you sure?
Can you confirm by doing the following:

SELECT  name,
        physical_name
FROM    sys.master_files
WHERE   DB_NAME(database_id) = 'PGMS'

Open in new window

0
MikeBroderickAuthor Commented:
The logical file names before the sqlcmd restore were A and A_LOG. After the restore they are master and mastlog.
0
MikeBroderickAuthor Commented:
I should add that I did not originally have the MOVE TO clauses, I added them while trying to make it work. I get the same error without the MOVE TO clauses.  I just tried changing the logical file names in the MOVE TO clauses to 'A' and 'A_LOG'. I get the following:

The file "master" is selected. At the time of backup it was known by the name "A". RESTORE will continue operating upon the renamed file.
The file "mastlog" is selected. At the time of backup it was known by the name "A_log". RESTORE will continue operating upon the renamed file.
Processed 424 pages for database 'PGMS', file 'master' on file 1.
Processed 3 pages for database 'PGMS', file 'mastlog' on file 1.
RESTORE DATABASE successfully processed 427 pages in 0.208 seconds (16.005 MB/sec).

But the same problem, no user tables.

The backup file has the databases master, model, and msdb on it also. It appears the restore is trying to restore the model database's files into the PGMS database. In the old days you had to display the backup file and locate the file numbers within the file for the database you want, and specify the "file numbers" within the file on the restore script. I don't see any parms to do that now. Am I missing something?
0
MikeBroderickAuthor Commented:
I should add I am backing up from system 3 and restoring to system 4. Also note that the number of pages restored matches the number of pages saved on system 3.
0
Anthony PerkinsCommented:
I am totally lost as to what you are doing.  May I suggest that since you state that "If I restore from the Management Studio, it works.", that you grab the SQL Script from there, without running the restore.
0
MikeBroderickAuthor Commented:
I am setting up a "poor man's" replication, where each night I backup the database PGMS off of the production system SVR04 into a file on the hard disk, and restore PGMS to another system SVR03 using the file on the hard disk. I am having a problem with the restore script (see above). The problem is seeming to boil down to this: The sqlcmd RESTORE DATABASE doesn't work, or I am doing something wrong. I mention that using Management Studio works verify the backup file is not corrupt.
0
Anthony PerkinsCommented:
I mention that using Management Studio works verify the backup file is not corrupt.
I understand.  Perhaps you are not familiar with the way you can get the SQL script that SSMS is using?  If so, do the Restore from SSMS but don't click on OK, instead click on the Script icon in the top left corner.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
MikeBroderickAuthor Commented:
Your questioning me on the logical file names made me suspect the first saved database in the file was being used for the restore. When I clicked the script icon, the script showed with a FILE = 4 clause. I didn't know you could do that. When I added it to my script, it worked!

Thank you.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.