栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ScriptingOptions sql smo不支持脚本数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ScriptingOptions sql smo不支持脚本数据

对以下内容进行了测试:

  • Win 7.0,.NET 4.0,VS 2010,SQL Server 2008R2
  • Win 7.0,.NET 4.6.1,VS 2017,SQL Server 2014

所需的程序集引用:

  • Microsoft.SqlServer.ConnectionInfo
  • Microsoft.SqlServer.Management.Sdk.Sfc
  • Microsoft.SqlServer.Smo

我使用“确定”按钮创建了一个简单的Win Forms应用程序,并调用了以下功能。

注意:如果要脚本化视图,则需要添加

if( myView.IsSystemObject == true ) continue;

确保未编写系统视图的脚本;我还没有测试。对于旧版本的SQL Server,您可能还需要检查表。

public static string scriptDatabase( string dbConnectionString, string databaseName ){    SqlConnection conn = new SqlConnection( dbConnectionString );    ServerConnection serverConn = new ServerConnection( conn );    var server = new Server( serverConn );    var database = server.Databases[ databaseName ];    var scripter = new scripter( server );    scripter.Options.IncludeIfNotExists = true;    scripter.Options.scriptSchema = true;    scripter.Options.scriptData = true;    string scrs = "";    foreach( Table myTable in database.Tables )    {        foreach( string s in scripter.Enumscript( new Urn[] { myTable.Urn } ) ) scrs += s + "nn"; ;    }    return ( scrs );}

函数将如下调用:

// Connection string for local SQL Server default instancescriptDatabase( "Server=.;Database=PlayGround;Trusted_Connection=True;", "PlayGround" );

输出:

SET ANSI_NULLS onSET QUOTED_IDENTIFIER onIF NOT EXISTS (SELECt * FROM sys.objects WHERe object_id = OBJECT_ID(N'[dbo].[tBlah]') AND type in (N'U'))BEGINCREATE TABLE [dbo].[tBlah](    [ID] [int] IDENTITY(1,1) NOT NULL,    [tID] [varchar](20) COLLATE Latin1_General_CI_AS NULL,    [Value] [varchar](20) COLLATE Latin1_General_CI_AS NULL) ON [PRIMARY]ENDSET IDENTITY_INSERT [dbo].[tBlah] onINSERT [dbo].[tBlah] ([ID], [tID], [Value]) VALUES (1, N'2', N'1234')INSERT [dbo].[tBlah] ([ID], [tID], [Value]) VALUES (2, N'2', N'345.6')

MSDN参考:

  • Microsoft.SqlServer.Management.Smo.scripter
  • Microsoft.SqlServer.Management.Common.ServerConnection
  • Microsoft.SqlServer.Management.Smo.Server
  • Microsoft.SqlServer.Management.Smo.Database

2019年12月17日更新: 检查最新的.NET版本; 添加了必需的参考;清理示例代码;添加了示例conn字符串



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号