Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat Tabel SQL berdasarkan Datatable C#

Ini bekerja untuk saya di linqpad:( setelah menambahkan referensi nuget ke "Microsoft.SQLServer.SMO"

disalin dan dimodifikasi dari jawaban di: Skrip tabel sebagai CREATE TO dengan menggunakan vb.net

Saya mengalami masalah saat mencoba mengakses Tabel["[exd].[ABCINDICATORSET]"], tidak tahu cara menentukan tabel dan domain dengan benar, saya selalu mendapatkan null back.

// 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();

Beberapa sql sedikit lebih verbose daripada apa yang Anda dapatkan dari sql server saat Anda melakukan Script Table As -> Create To -> New Query Editor Window

Perubahan untuk membuatnya lebih dekat dengan apa yang dihasilkan sql server adalah:

//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. Sql Server 2008 Baris ke Kolom

  2. Bagaimana cara mengetahui tabel apa yang dimiliki oleh kunci halaman

  3. Periksa apakah RPC Out Diaktifkan pada Server Tertaut

  4. Kunci Utama Gabungan + Kunci Asing

  5. Dapatkan hitungan untuk beberapa bidang menggunakan grup dengan di SQL