2017-09-18 10 views
0

J'ai utilisé cette chaîne de connexion pour connecter ma base de données SQL pour SQL Express automatiquement:Obtenez le nom de db de SQL Express

Data Source=.\SQLEXPRESS; AttachDBFileName=|DataDirectory|\DB\MyDBName.mdf; User ID=sa;Password=MyPass;Persist Security Info=True 

tout fonctionne bien, mais le problème est quand je veux obtenir la sauvegarde de mon db.The express sql change le nom de db lorsque le joindre si dans la requête de sauvegarde je reçois cette erreur:

Database 'MyDBName' does not exist.Make sure that the name is entered correctly. BACKUP DATABASE is terminating abnormally.

Ma requête de sauvegarde est:

BACKUP DATABASE [MyDBName] TO DISK=N'" + filePath + "' WITH NOFORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 10; 

Y at-il un moyen d'obtenir le nom actuel de mon db de SQL Express OU définir le nom de mon DB lorsqu'il est attaché automatiquement à SQL Express?

Répondre

1

d'abord exécuter la requête suivante et obtenir le nom de la base de données

SELECT DB_NAME() AS DataBaseName 

i.e.

SqlCommand cmd = new SqlCommand("SELECT DB_NAME() AS dbName",your_connection); 
string name = cmd.executeScalar().ToString(); 
//now do what ever you want to with db name