c# - Use SMO to Change SQL Server Database Default Locations -


i using following code change server database default locations (where sql server keeps new database files , log files):

using microsoft.sqlserver.management.smo;  server smoserver = new server(new serverconnection(server, username, password)); server.defaultfile = newpath; server.alter(); server.refresh();  // create database in new location database smodatabase = new database(smoserver, database); smodatabase.create(); smoserver.refresh(); 

here's problem: can in sql server management studio , see server property database default locations has been changed newpath. however, when use smo create new database, new database , logfile created in old path.

once restart sql server instance, smo code creates database/logfile in new path.

any ideas why i'm getting behavior?

edit: 1 suggestion change doesn't take place until sql server instance restarted. however, if open ssms , create new database on instance, gets created in new path without having restart.

you need add information data , log files explicitly:

// create database in new location database smodatabase = new database(smoserver, database);  filegroup fg = new filegroup(smodatabase, "primary"); datafile df = new datafile(fg, "file1", @"c:\sql\file1.mdf"); logfile lf = new logfile(smodatabase, "log01", @"c:\sql\log1.ldf");   smodatabase.create(); smoserver.refresh(); 

Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -