在SQL Server中,我可以创建一个表,该表与设置了所有约束的另一个表重复。我可以将脚本表用作SQL Server Management Studio中的CREATE TO来执行此操作。然后,我可以在另一个数据库中运行该脚本,以便重新创建同一表,但没有数据。我想通过使用vb.net代码来做同样的事情。重要的一点是,所有约束和表属性均已正确设置。
您可以使用SMO(SQL Server管理对象)程序集将表脚本化为应用程序内部的字符串。我在这里使用C#,但是同样可以在VB.NET中轻松完成。
// Define your database and table you want to script out string dbName = "YourDatabase"; string tableName = "YourTable"; // 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 = "YourSQLServerInstance"; // 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[tableName]; 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();
您需要引用几个SMO程序集。