gpt4 book ai didi

c# 使用数据库中的数据生成 INSERT 脚本

转载 作者:行者123 更新时间:2023-12-05 01:17:39 25 4
gpt4 key购买 nike

我尝试生成一个脚本,其中包含 INSERT 脚本形式的数据,我尝试使用引用(见下文)来做

using Microsoft.SqlServer.Management.Smo;

有了这个代码草稿

Server serv = new Server(db);
Database simba = serv.Databases[dbname];
string script = "";

ScriptingOptions so = new ScriptingOptions()
{
ScriptData = true,
ScriptSchema = false,
ScriptDrops = false
};

foreach (Table tb in simba.Tables)
{
if (tables.Contains(tb.Name))
{
var sc = tb.Script(so);
foreach (var s in sc)
script += s;

}
using (StreamWriter writer = new StreamWriter(file))
{
foreach (string tab in tables)
writer.WriteLine(script);
}
}

但是这段代码在

var sc = tb.Script(so);

这是

Microsoft.SqlServer.Management.Smo.FailedOperationException

谢谢大家的回复

最佳答案

我有这个代码,它工作正常尝试使用它

var report   = string.Empty;
var fileName = Server.MapPath(Constants.BACKUP_FILE_NAME);

var server = new Server(new ServerConnection(new SqlConnection(Constants.BACKUP_CONNECTION_STRING)));
var options = new ScriptingOptions();
var databases = server.Databases[Constants.BACKUP_DATABASE_NAME];

options.FileName = fileName;
options.EnforceScriptingOptions = true;
options.WithDependencies = true;
options.IncludeHeaders = true;
options.ScriptDrops = false;
options.AppendToFile = true;
options.ScriptSchema = true;
options.ScriptData = true;
options.Indexes = true;

report = "<h4>Table Scripts</h4>";
foreach (var table in Constants.BACKUP_TABLES)
{
databases.Tables[table, Constants.BACKUP_SCHEMA_NAME].EnumScript(options);
report += "Script Generated: " + table + "<br>";
}

“常量”是我的类,用于保存文件名、数据库等常量值,我正在为有限的表生成脚本,因此不要像在代码中那样执行“simba.Tables”;如果您希望生成每个表脚本,您当然可以这样做。所以这段代码会生成脚本并将其存储到指定的文件中。

希望对你有帮助

关于c# 使用数据库中的数据生成 INSERT 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49237169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com