【发布时间】:2018-03-12 14:02:30
【问题描述】:
我尝试生成一个包含 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
感谢大家的回复
【问题讨论】:
-
异常详细信息的其余部分是什么?
-
显示您正在运行的脚本示例
-
@bugfinder 我认为他们正在尝试使用脚本生成字符串,而不是运行它们。您是否尝试过显式输入字符串?
-
@Crowcoder Microsoft.SqlServer.Management.Smo.FailedOperationException: Cette method ne prend pas en charge le script de données。 à Microsoft.SqlServer.Management.Smo.SqlSmoObject.ScriptImpl(ScriptingOptions so) à Microsoft.SqlServer.Management.Smo.TableViewTableTypeBase.Script(ScriptingOptions scriptingOptions)à generateScriptSQL.Program.Main(String[] args) dans c:\users\ cad\Source\Repos\generateScriptSQL\generateScriptSQL\Program.cs:ligne 84
-
@JacobH 你的意思是没有生成?我可以直接在 mssql 上使用发布者向导,但我尝试自动化我的任务
标签: c# sql-server smo