Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 .NET Inside SQL Server (2005)
 SMO problem retrieving my DATABASE problem

Author  Topic 

lionking88
Starting Member

3 Posts

Posted - 2010-08-05 : 11:49:53
Hi,

I'am having a problem triyng to use SMO to make a backup of my database.

I use this to know the name of server:

DataTable dt = SmoApplication.EnumAvailableSqlServers(true);
foreach (DataRow dr in dt.Rows)
{
cbServers.Items.Add(dr[0].ToString());
srvName = dr[1].ToString() + "\\" + dr[2].ToString();
}



srvName will get the name of Server (I just get one "RICARDO-PC\SQLEXPRESS" ), and then i use this to get the name of my databases and i just get:

master
model
msdb
tempdb

How can I extract other tables if I just can get "RICARDO-PC\SQLEXPRESS"? I have two more tables.

Sorry, my English.

webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2010-08-05 : 12:09:28
quote:
and then i use this to get the name of my databases

How?


No, you're never too old to Yak'n'Roll if you're too young to die.
Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2010-08-05 : 12:17:49
is this what you need?

Database : SELECT db_name() AS MyDatabaseName
Server: SELECT SERVERPROPERTY ('InstanceName') AS MyServerName
or use 'MachineName', or 'ServerName'
Go to Top of Page

lionking88
Starting Member

3 Posts

Posted - 2010-08-05 : 12:22:35
I get my system databases (master,model, msdb, tempdb ) with this:

Server svr = new Server(@"" + srvName + "");
foreach (Database dbServer in svr.Databases)
{
cbServers.Items.Add(dbServer.Name);
}

srvName - RICARDO-PC\SQLEXPRESS
cbServers - DropDownList

Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2010-08-05 : 12:25:14
SELECT [name] FROM sys.databases

will give you all the databases on a server - if that is what you need?
Go to Top of Page

lionking88
Starting Member

3 Posts

Posted - 2010-08-05 : 12:50:52
When i tried this SELECT SERVERPROPERTY ('InstanceName') AS MyServerName, i received my instance database name (4C05147D-CB87-40), and then i tried to
use this to get my database:
srvName - RICARDO-PC\4C05147D-CB87-40

Server svr = new Server(@"" + srvName + "");
foreach (Database dbServer in svr.Databases)
{
cbServers.Items.Add(dbServer.Name);
}

but i get this error:

error: 40 -
One error occour with the instance trying to conect to the SQL server
Verify if the instance name is correct

And if i use this SELECT [name] FROM sys.databases

I received all my databases names, but if i tried to make a backup of the one i want i get the error:
System.Data.SqlClient.SqlError: Could not locate entry in sysdatabases for database <databaseName> No entry found with that name. Make sure that the name is entered correctly.

But i can make a backup of this databases master,model, msdb.

Why System don't recognize my databases? Just recognize system database(master,model, msdb, dbtemp)
Go to Top of Page
   

- Advertisement -