【问题标题】:CopyAllViews = false is being ignored by SMOCopyAllViews = false 被 SMO 忽略
【发布时间】:2017-02-01 04:08:43
【问题描述】:

我希望 SMO 不对视图编写脚本,所以我这样做

 var transfer = new Transfer(database)
    {
        CopyAllTables = true,
        CopyAllDefaults = false,
        CopyAllStoredProcedures = true,
        CopyAllDatabaseTriggers = true,
        CopyAllObjects = false,
        CopyAllPartitionFunctions = false,
        CopyAllPartitionSchemes = false,
        CopyAllRoles = false,
        CopyAllRules = true,
        CopyAllSchemas = true,
        CopyAllSqlAssemblies = false,
        CopyAllSynonyms = false,
        CopyAllUserDefinedAggregates = true,
        CopyAllUserDefinedDataTypes = true,
        CopyAllUserDefinedFunctions = true,
        CopyAllUserDefinedTypes = true,
        CopyAllUsers = false,
        CopyAllViews = false,
        Options =
        {
            WithDependencies = true,
            DriAll = true,
            Triggers = true,
            Indexes = true,
            SchemaQualifyForeignKeysReferences = true,
            ExtendedProperties = true,
            IncludeDatabaseRoleMemberships = false,
            Permissions = true,
            IncludeDatabaseContext = true
        },
        PreserveDbo = true,
    };

    transfer.ScriptTransfer()

但视图仍然是脚本化的。

我真的希望能够使用传输,因为它似乎是在不编写更多代码的情况下以依赖顺序获取对象脚本的唯一方法。我设置 “CopyAllObjects = false”,因为我认为这可能导致我设置的其余选项被忽略,但它似乎没有任何好处。

我的目标是分别编写视图脚本,因为我有一个数据库服务器,其中的视图相互依赖,并且需要对所有数据库中的视图使用dependencywalker 以按依赖顺序编写脚本。

请帮忙?

【问题讨论】:

    标签: sql sql-server-2008 smo


    【解决方案1】:

    我没有完全修复它,但最终过滤掉了任何带有“创建视图”的行。所以我只是打电话

     transfer.ScriptTransfer().Cast<string>().ToList()
    

    除非我遗漏了什么,否则 SMO 选项中的许多这些标志(如 CopyAllUsers)似乎只在感觉像时才会兑现。 :( 当某些选项看起来完全符合我的需要但不起作用时,这是一种耻辱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 2015-11-28
      相关资源
      最近更新 更多