sql >> Databáze >  >> RDS >> Sqlserver

Vytvořte SQL tabulku založenou na Datatable C#

Toto fungovalo pro mě v linqpad:( po přidání odkazu na "Microsoft.SQLServer.SMO"

zkopírováno a upraveno z odpovědi na adrese: Tabulka skriptů jako CREATE TO pomocí vb.net

Měl jsem potíže při pokusu o přístup k tabulkám["[exd].[ABCINDICATORSET]"], nemohl jsem přijít na to, jak správně specifikovat tabulku a doménu, vždy se mi vracelo nula.

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

Některé sql jsou o něco podrobnější než to, co získáte ze serveru SQL, když uděláte tabulku skriptů jako -> Vytvořit do -> Okno nového editoru dotazů

Změny, které se přiblížily tomu, co generuje server SQL, byly:

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


  1. Která metoda je lepší pro ověření přihlašovacích údajů uživatele?

  2. Převeďte UUID do/z binárního v Node

  3. Zálohujte databázi mysql a stáhněte ji jako soubor

  4. GRANT konkrétní roli ALTER přístup ke konkrétní tabulce