我正在编写一个脚本,该脚本可以在数据库(视图,表..)中拖放对象并创建对象 一切正常...但是我在Microsoft.SqlServer.Management.Smo.ScriptingOptions dll中找不到ScriptForCreateDrop。
此属性在microsoft的官方文档中:https://docs.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.management.smo?view=sql-smo-140.17283.0
您曾经遇到过这种情况吗?你知道我为什么找不到它吗?已经尝试安装该dll的最新版本(来自nuget)
谢谢。
答案 0 :(得分:0)
您可能安装了错误的nuget软件包/版本。
尝试安装此nuget软件包
Microsoft.SqlServer.SqlManagementObjects
答案 1 :(得分:0)
即使在最新的SMO中也似乎存在错误。 V150.18178.0 https://feedback.azure.com/forums/908035-sql-server/suggestions/38383138--smo-scriptingoptions-scriptforcreatedrop-true
我能够通过反射解决此问题并手动设置属性:
ScriptingOptions scrp = new ScriptingOptions();
var field =
scrp.GetType().GetField("scriptingPreferences", BindingFlags.NonPublic | BindingFlags.Instance);
ScriptingPreferences sp = (ScriptingPreferences)field.GetValue(scrp);
sp.Behavior = ScriptBehavior.DropAndCreate;
field.SetValue(scrp, sp);