SMO Sample: Enable TCP/IP Server protocol of SQL Server 2005

Purpose of sample: Enable the TCP/IP server protocol.   This sample shows you how to change a server protocol setting. This sample assumes you have SQL Express installed. You need to change the instance name to match the instance name you have installed.   ManagedComputer mc = new ManagedComputer(); mc.ServerInstances[“SQLEXPRESS”].ServerProtocols[“Tcp”].IsEnabled = true;


SMO Samples Galore

With much of the SQL Server 2005 devcelopment behind us, I am starting to have some more time to post some SMO samples. Most of these are inspired on questions in the beta newsgroups or the SMO/DMO forum. Additionally, SQL Server 2005 ships with a pretty wide variety of samples. In fact, there are more…


SMO Sample: Which SQL Server version is supported by the property?

Purpose of sample: List metadata information about SMO object properties SMO’s object model is different from DMO in one important way: DMO introduced the ‘2’ (like Database2) objects in order to add SQL Server 2000 support. SMO objects are hybrid in that perspective, as these objects morph or limit behavior based on the SQL Server…


SMO Sample: Create and Start a Job

Purpose of sample: Create simple job and start the job after creation.   Server svr = new Server(instance);JobServer agent = svr.JobServer; if (agent.Jobs.Contains(“New Smo Job”)){   agent.Jobs[“New Smo Job”].Drop();} Job j = new Job(agent, “New Smo Job”);JobStep js = new JobStep(j, “Step 1”);js.SubSystem = AgentSubSystem.TransactSql;js.Command = “select 1”;j.Create();j.ApplyToTargetServer(svr.Name); j.Start(); Disclaimer: this sample doesn’t handle exceptions and may…


SMO Sample: Backup database to Mirrors

Purpose of sample: Backup database to various mirrors Server svr = new Server(); Backup b = new Backup(); b.BackupSetDescription = “Set description”;b.Action = BackupActionType.Database;b.BackupSetName = “Backup set #1”;b.Database = “msdb”;b.MediaDescription = “Media description”;b.MediaName = “Media name”;b.Devices.AddDevice(@”c:\back1a.bak”, DeviceType.File);b.Devices.AddDevice(@”c:\back1b.bak”, DeviceType.File); BackupDeviceList[] la = new BackupDeviceList[2]; BackupDeviceList l1 = new BackupDeviceList();l1.AddDevice(@”c:\back2a.bak”, DeviceType.File);l1.AddDevice(@”c:\back2b.bak”, DeviceType.File); BackupDeviceList l2 = new BackupDeviceList();l2.AddDevice(@”c:\back3a.bak”,…


SMO Sample: Partitions

Purpose of sample: create a partition function and partition scheme on an existing database Server svr = new Server(instance); if (svr.Databases.Contains(“smotestdb”)) // change the name if needed{   svr.Databases[“smotestdb”].Drop();} Database db = new Database(svr, “smotestdb”);db.Create(); db.FileGroups.Add(new FileGroup(db, “PART1_FG”));db.FileGroups.Add(new FileGroup(db, “PART2_FG”));db.FileGroups[0].Files.Add(new DataFile(db.FileGroups[0], “datafile1″, @”C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\db_1.mdf”));db.FileGroups[1].Files.Add(new DataFile(db.FileGroups[1], “datafile2″, @”C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\db_2.mdf”));db.Alter(); PartitionFunction pf = new PartitionFunction(db,…


SMO Sample: Transfer

Purpose of sample: Transfer a database; all objects and data Server tgt = new Server(“.”); // Setup source connection (in this sample source is .\inst1 and target is ‘.’ (the default instance)Server svr = new Server(@”.\inst1″);Database db = svr.Databases[“testdb”]; // Setup transferTransfer t = new Transfer(db);t.CopyAllObjects = true;t.DropDestinationObjectsFirst = true;t.CopySchema = true;t.CopyData = true;t.DestinationServer =…


SMO Sample: Table column default constraint

Purpose of sample: show how a column constraint can be created. Table tbl = new Table (db, “MyTestTable”);Column c1 = new Column(tbl, “c1”, DataType.DateTime);c1.AddDefaultConstraint(/*name optional*/);c1.DefaultConstraint.Text = “getdate()”;tbl.Columns.Add(c1);tbl.Create(); Disclaimer: this sample doesn’t handle exceptions and may not function as expected. Use at own risk. It is good practice to test an application before using it in…


SQL Server: Table Partitioning in SQL Server 2005

Table and Index partitioning is one if the new SQL Server 2005 features that willl improve life for the DBA and application developer quite a bit. It allows Indexes and Tables to be partitioned across multiple file groups. Partitioned tables and indexes, are fully manageable with SMO. Here is a quick sample to get you…


SQL Server: Capture Object changes with SMO Capture Mode

In a previous article I have showed how a SMO object can be serialized into a Transact-SQL script, which allows you to recreate the object. What if you want to have the script that is emitted when you changed one or more properties of an object? In that case Capture Mode comes in handy. This…