DekGenius.com
[ Team LiB ] Previous Section Next Section

Recipe 10.7 Creating a New SQL Server Database

Problem

You need to create a new database in your SQL Server.

Solution

Use the CREATE DATABASE statement.

The sample code executes the DDL statement—using the ExecuteNonQuery( ) method of the Command object—to create a new database named MyDatabase in SQL Server.

The C# code is shown in Example 10-7.

Example 10-7. File: CreateServerDatabaseForm.cs
// Namespaces, variables, and constants
using System;
using System.Configuration;
using System.Text;
using System.Data;
using System.Data.SqlClient;

//  . . . 

StringBuilder sb = new StringBuilder( );

// SQL DDL command text to create database.
String sqlText = "CREATE DATABASE MyDatabase ON PRIMARY " +
        "(NAME = MyDatabase_Data, " +
        "FILENAME = '" + DATAFILENAME + "', " +
        "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
        "LOG ON (NAME = MyDatabase_Log, " +
        "FILENAME = '" + LOGFILENAME + "', " +
        "SIZE = 1MB, " +
        "MAXSIZE = 5MB, " +
        "FILEGROWTH = 10%)";

sb.Append(sqlText + Environment.NewLine + Environment.NewLine);

// Create a connection.
SqlConnection conn = new SqlConnection(
    ConfigurationSettings.AppSettings["Sql_Master_ConnectString"]);

// Create the command to create the database.
SqlCommand cmd = new SqlCommand(sqlText, conn);
// Create the new database.
try 
{
    conn.Open( );
    cmd.ExecuteNonQuery( );
    sb.Append("DataBase created successfully.");
}
catch (System.Exception ex)
{
    sb.Append(ex.ToString( ));
}
finally
{
    if (conn.State == ConnectionState.Open)
        conn.Close( );
    conn.Close( );
} 

resultTextBox.Text = sb.ToString( );

Discussion

There are two categories of SQL statements:

Database Definition Language (DDL)

Used to manage all objects in the database, generally with CREATE, ALTER, and DROP statements to create, modify, and delete objects, respectively. These statements generally require DBA permissions to execute.

Database Management Language (DML)

Used to manipulate—select, insert, update, and delete—data in the database objects. Database objects are defined using DDL.

The solution executes a DDL CREATE DATABASE statement to create a new database on a SQL Server.

You can programmatically drop the database by using the DROP DATABASE statement in a similar way. To drop the database created in the previous example, use the following code:

DROP DATABASE MyDatabase

The DROP DATABASE statement will fail if the database is in use; therefore, it might be necessary to restart the SQL Server in order to drop the database. System databases—master, model, msdb, and tempdb—cannot be dropped.

For more information about the CREATE DATABASE statement, the DROP DATABASE statement, or DDL, see Microsoft SQL Server Books Online.

The solution for Oracle databases and other databases is similar to that shown for SQL Server although the DDL syntax for each database varies slightly because of differences in database server capabilities and architecture. For more information about Oracle SQL syntax, see Oracle in a Nutshell (O'Reilly).

    [ Team LiB ] Previous Section Next Section