c# - 创建数据库 xmla 文件的脚本
问题描述
我正在寻找一种自动方法来生成在第一个屏幕截图中创建的文件,看看它是否可以完成:
它是一个xmla文件,详细说明了数据库中表的结构。最好是C#或PowerShell中的解决方案,但任何方法都会受到赞赏。
第二个图像是所需输出文件的格式。这很容易从 SSMS 生成,但我想运行一个脚本来生成它:
解决方案
如果您使用的是SQL Server Analysis Services数据库:
在C#中,您可以使用Microsoft.AnalysisServices.retail.amd64包,如下所示:
Server yourServer = new Server();
yourServer.Connect(@"Data Source=ServerName\InstanceName");
MajorObject[] yourDatabase = new MajorObject[1];
yourDatabase[0] = yourServer.Databases["DbName"];
var scripter = new Scripter();
XmlWriter xmlWriter = XmlWriter.Create(@"FilePath")
看看下面的链接。这个问题与您的问题相似:
需要 SMO 的 c# 脚本,它从分析服务数据库创建 XMLA 脚本
如果您使用的是SQL Server数据库:
在C#中,您可以使用Microsoft.SqlServer.SqlManagementObjects包为数据库对象生成脚本,如下所示:
Server yourServer = new Server("ServerName");
Scripter scripter = new Scripter(yourServer);
Database yourDb = yourServer.Databases["DbName"];
foreach (Table table in yourDb.Tables)
{
tableScripts = table.Script();
foreach (string script in tableScripts)
Console.WriteLine(script);
}
您还可以对、等使用脚本选项。我建议您查看以下链接:IfNotExists
ScriptDrops
使用 SMO for SQL Server 为数据库对象生成脚本
然后,您可以使用C#代码创建脚本文件。
推荐阅读
- python - TypeError:在 EarlyStopping keras 中使用 restore_best_weights=True 时,类型为“NoneType”的对象没有 len()
- java - 这是将 MVVM 结构与 ViewModel 和 RecyclerView 一起使用而没有任何问题的正确方法吗?
- c++ - 在 SetConsoleTitle() 函数中传递 std::string
- kotlin - Kotlin 中的动态编程风格
- asp.net-mvc - 使用 Where Throws NotSupportedException 测试最小起订量
- javascript - 当 csv 列的名称在 Angular 中包含空格时,有没有办法读取它?
- node.js - 未从 mongo 数据库中获取数据。收到一个空错误。尽管 mongo 云中存在集合
- java - 使用 Gson 反序列化 LocalDate 的问题
- apache-spark - Apache Spark 中的自动批处理
- python - 具有默认属性工厂的 Python 类