Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tạo bảng SQL dựa trên Datatable C #

Điều này đã làm việc cho tôi trong linqpad:(sau khi thêm một tham chiếu nuget vào "Microsoft.SQLServer.SMO"

được sao chép và sửa đổi từ câu trả lời tại: Bảng tập lệnh dưới dạng TẠO ĐẾN bằng cách sử dụng vb.net

Tôi đã gặp sự cố khi cố truy cập vào Tables ["[exd]. [ABCINDICATORSET]"], không thể tìm ra cách chỉ định bảng và miền đúng cách, tôi luôn nhận được giá trị trống.

// Define your database and table you want to script out
string dbName = "Ivara77Install";

// set up the SMO server objects - I'm using "integrated security" here for simplicity
Server srv = new Server();
srv.ConnectionContext.LoginSecure = true;
srv.ConnectionContext.ServerInstance = ".";

// get the database in question
Database db = new Database();
db = srv.Databases[dbName];

StringBuilder sb = new StringBuilder();

// define the scripting options - what options to include or not
ScriptingOptions options = new ScriptingOptions();
options.ClusteredIndexes = true;
options.Default = true;
options.DriAll = true;
options.Indexes = true;
options.IncludeHeaders = true;



// script out the table's creation 
Table tbl = db.Tables.OfType<Table>().Single(t => t.Schema.ToLower() == "exd" && t.Name.ToLower() == "ABCINDICATORSET".ToLower() );

StringCollection coll = tbl.Script(options);

foreach (string str in coll)
{
    sb.Append(str);
    sb.Append(Environment.NewLine);
}

// you can get the string that makes up the CREATE script here
// do with this CREATE script whatever you like!
string createScript = sb.ToString();

Một số sql hơi dài dòng hơn những gì bạn nhận được từ máy chủ sql khi bạn thực hiện Script Table As -> Create To -> New Query Editor Window

Những thay đổi để làm cho nó gần hơn với những gì máy chủ sql tạo ra là:

//options.Indexes = true;
options.IncludeHeaders = true;
options.NoCollation = true;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lọc truy vấn SQL theo danh sách các tham số

  2. SQL nhóm các giá trị tương tự lại với nhau

  3. Làm thế nào để nối các cột đúng cách bằng T-SQL?

  4. Lưu trữ thời gian trong ngày trong SQL

  5. Truy vấn đệ quy SQL chỉ trả về hàng cuối cùng