且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何动态创建表脚本和存储过程脚本

更新时间:2023-02-03 16:53:50



SMO ,请参阅传送;用于脚本操作的类和用于数据库操作的数据库类(创建,删除等)。用法如下所示:



Hi,
It's easy to do this with SMO, see Transfer; class for scripting operations and Database class for database operations (create, drop, etc). Usage looks like this:

private StringCollection GetTransferScript(Database database)
   {
       var transfer = new Transfer(database);

       transfer.CopyAllObjects = true;
       transfer.CopyAllSynonyms = true;
       transfer.CopyData = false;

       // additional options
       transfer.Options.WithDependencies = true;
       transfer.Options.DriAll = true;
       transfer.Options.Triggers = true;
       transfer.Options.Indexes = true;
       transfer.Options.SchemaQualifyForeignKeysReferences = true;
       transfer.Options.ExtendedProperties = true;
       transfer.Options.IncludeDatabaseRoleMemberships = true;
       transfer.Options.Permissions = true;
       transfer.PreserveDbo = true;

       // generates script
       return transfer.ScriptTransfer();