इसने मेरे लिए linqpad में काम किया:("Microsoft.SQLServer.SMO" के लिए एक nuget संदर्भ जोड़ने के बाद
उत्तर से कॉपी और संशोधित किया गया: vb.net . का उपयोग करके क्रिएट टू के रूप में स्क्रिप्ट तालिका
मुझे टेबल्स ["[exd]। [ABCINDICATORSET]"] तक पहुंचने का प्रयास करने में परेशानी हुई, यह पता नहीं लगा सका कि टेबल और डोमेन को ठीक से कैसे निर्दिष्ट किया जाए, मैं हमेशा वापस आ रहा था।
// 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();
जब आप Script Table As -> Create To -> New Query Editor Window
करते हैं, तो कुछ sql, sql सर्वर से प्राप्त होने वाले कार्यों की तुलना में थोड़ा अधिक वर्बोज़ होते हैं।sql सर्वर जो उत्पन्न करता है उसके करीब बनाने के लिए परिवर्तन थे:
//options.Indexes = true;
options.IncludeHeaders = true;
options.NoCollation = true;