Tạo cơ sở dữ liệu SQL theo lập trình
Trong bài viết này, tôi sẽ giải thích cách sử dụng Microsoft SQL Management Object (SMO) để tạo cơ sở dữ liệu Microsoft SQL từ mã C #.
Giới thiệu
Trong bài viết này, tôi sẽ giải thích cách sử dụng Microsoft SQL Management Object (SMO) để tạo cơ sở dữ liệu Microsoft SQL từ mã C #. Trong mẫu này, tôi sẽ:
- Liệt kê tất cả các máy chủ SQL trong mạng và điền vào hộp danh sách nơi người dùng có thể chọn một trong các máy chủ.
- Người dùng sẽ nhập Tên cơ sở dữ liệu để tạo.
- Người dùng sẽ nhập tài khoản AD để cấp quyền.
- Khi người dùng nhấp vào "Tạo cơ sở dữ liệu", hệ thống sẽ kiểm tra sự tồn tại của cơ sở dữ liệu.
Lý lịch
Đối tượng quản lý máy chủ SQL (SMO) là các đối tượng được thiết kế để quản lý theo chương trình của Microsoft SQL Server. Bạn có thể sử dụng SMO để xây dựng các ứng dụng quản lý SQL Server tùy chỉnh. Mặc dù SQL Server Management Studio là một ứng dụng mạnh mẽ và rộng rãi để quản lý SQL Server, nhưng có thể đôi khi bạn sẽ được ứng dụng SMO phục vụ tốt hơn.
Liệt kê các máy chủ SQL
Các
SmoApplication.EnumAvailableSqlServers()liệt kê một danh sách các trường hợp có sẵn của Microsoft SQL Server. Nó trả về một DataTable giá trị đối tượng chứa danh sách thông tin được liệt kê về các phiên bản có sẵn của SQL Server. Bảng mô tả các cột khác nhau của trả lại DataTable.| Cột | Loại dữ liệu | Sự miêu tả |
Name | String | Tên của thể hiện của SQL Server. |
Server | String | Tên của máy chủ mà phiên bản SQL Server được cài đặt. |
Instance | String | Ví dụ của SQL Server. |
IsClustered | Boolean | Giá trị Boolean là true nếu thể hiện đang tham gia phân cụm chuyển đổi dự phòng hoặc false nếu không. |
Version | String | Phiên bản của phiên bản SQL Server. |
IsLocal | Boolean | Giá trị Boolean là true nếu thể hiện là cục bộ hoặc false nếu thể hiện ở xa. |
Ẩn mã sao chép
DataTable dt = SmoApplication.EnumAvailableSqlServers();
foreach (DataRow dr in dt.Rows)
{
this.cbServers.Items.Add(dr[0]);
}
Kết nối với máy chủ SSQL
Trước tiên, chúng tôi kiểm tra xem người dùng đã chọn máy chủ cục bộ hay máy chủ SQL:
Ẩn mã sao chép
//Connect to the local, default instance of SQL Server.
string srvname = this.cbServers.SelectedItem as string;
Server srv;
if (srvname == null)
{
srv = new Server();
sb.AppendLine("Connected to local SQL server");
}
else
{
srv = new Server(srvname);
sb.AppendLine(string.Format("Connected to {0}", srvname));
}
Kiểm tra nếu cơ sở dữ liệu tồn tại
Thật dễ dàng để kiểm tra xem cơ sở dữ liệu đã tồn tại hay chưa, chỉ cần sử dụng
Databases thuộc tính của máy chủ như sau:
Ẩn mã sao chép
//Define a Database object variable by supplying the server and the
//database name arguments in the constructor.
Database db = srv.Databases[this.tbDBName.Text.Trim()];
if (db != null)
{
if (MessageBox.Show(string.Format
("The '{0}' already exists do you want to drop it?", this.tbDBName.Text),
"Warning", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)else
{
if (MessageBox.Show(string.Format
("Create the Tables and Stored Procedures for BT Error Manager on '{0}'?",
this.tbDBName.Text), "Warning", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)
{
b.AppendLine("Creating the Tables and Stored Procedures.");
this.tbProgress.Text = sb.ToString();
db.ExecuteNonQuery(dbstring);
sb.AppendLine(string.Format
("Created the Tables and Stored Procedures for BT Error Manager on '{0}'",
this.tbDBName.Text));this.tbProgress.Text = sb.ToString();
this.tbProgress.ScrollToCaret();"Proceed or select another database");
this.tbProgress.Text = sb.ToString();this.tbProgress.ScrollToCaret();
return;
Tạo cơ sở dữ liệu
Để tạo cơ sở dữ liệu, tất cả những gì bạn phải làm là tạo một
Database đối tượng mới với Máy chủ và tên của cơ sở dữ liệu, sau đó gọi Create phương thức.
Ẩn mã sao chép
db = new Database(srv, this.tbDBName.Text);
this.tbProgress.Text = sb.ToString();
this.tbProgress.ScrollToCaret();
//Create the database on the instance of SQL Server.
db.Create();
sb.AppendLine("Created the database.");
sb.AppendLine("Creating the Tables and Stored Procedures.");
this.tbProgress.Text = sb.ToString();this.tbProgress.ScrollToCaret();
Chạy tập lệnh SQL
Bước cuối cùng là chạy tập lệnh sẽ tạo các bảng, dạng xem, thủ tục được lưu trữ, v.v.
Ẩn mã sao chép
//'Reference the database and display the date when it was created.
db.ExecuteNonQuery(dbstring);
Ghi chú
Nếu bạn muốn sử dụng mã này trong dự án của mình, bạn sẽ cần thêm các tham chiếu đến các hội đồng SMO. Bạn có thể định vị các cụm SMO trong thư mục C: \ Program Files \ Microsoft SQL Server \ 90 \ SDK \ Assemblies . Chọn các tệp sau:
- Microsoft.SqlServer.ConnectionInfo.dll
- Microsoft.SqlServer.Smo.dll
- Microsoft.SqlServer.SqlEnum.dll
- Microsoft.SqlServer.SmoEnum.dll
Ẩn mã sao chép
}
sb.AppendLine(
}
}
{
db.Drop();
}

