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
Post a Comment