我有一个用于滚动 30 天总计的 MDX 计算度量,我想为未来的成员隐藏计算。我正在尝试使用 CASE 语句,但比较无法正常进行。如果 Fiscal Month 成员的键是日期时间,这不应该工作吗?
CASE
WHEN [Time].[Fiscal Month].CurrentMember < NOW()
THEN 1
ELSE 0
END
我有一个用于滚动 30 天总计的 MDX 计算度量,我想为未来的成员隐藏计算。我正在尝试使用 CASE 语句,但比较无法正常进行。如果 Fiscal Month 成员的键是日期时间,这不应该工作吗?
CASE
WHEN [Time].[Fiscal Month].CurrentMember < NOW()
THEN 1
ELSE 0
END
我有许多描述业务对象的 XML 架构定义。如果我打算制作类型化的 xml 列,我不清楚部署这些的正确方法是什么。Xml Schema Collection 这个名称意味着一个集合中可以存在多个 Xsd Document 定义,但我看到的任何示例都将 Collection 显示为列的特定约束,而不是列中的文档。
我是否创建一个名为“BusinessObjects”的架构集合并在其中创建单独的 Xsd 文档?我是否为每个文档制作一个集合?
我有一个流程步骤,其中我在 SQL Server 列中有一个 XML 文档,我需要更改可能多次出现的节点的文本。Modify() with 'replace' DML 仅在单个节点上运行。更复杂的是,替换需要基于本地维护的查找表进行。
我可以使用 nodes() 来获取节点列表并设计一个查询来适当地连接数据,但那时我不再有 modify() 可以作用的引用。
看来我唯一的选择是创建一个 CLR 过程或函数并使用某种 dotnet 本机 XML 迭代。这不太吸引人,因为业务逻辑将被锁定在源代码中,在过程定义中不可见。有没有办法专门使用 XML 方法进行这种转换?
我正在计划一个项目,将内部开发的应用程序从 SQL Server 2005 升级到 SQL Server 2012。我希望在过渡期间使用 Service Broker 作为桥梁。除了不存在诸如多播之类的新功能之外,在这样的前向兼容性场景中是否有任何问题需要考虑?我在 BOL 中找不到任何关于兼容性的内容。
我在 sql 代理作业中有一个 cmdexec 步骤,该作业最后包含到文件的重定向。它按在 SQL 代理服务帐户上下文中运行的 CMD shell 的预期方式工作,并在所需位置生成文件。但是,如果我将它作为代理作业运行,该步骤会“成功”但永远不会生成输出文件。在这两种情况下,服务帐户显然都具有足以执行此操作的文件系统权限和系统权限。
cmdexec 环境在某种程度上是否比仅运行 cmd.exe 更受限制?
在 SSIS(特别是 2012 年)中,平面文件数据源中有一个选项可以跳过文件开头的多行。预览显示正确。但是,当尝试执行数据流时,这些行似乎仍在验证中;这样如果它们包含无效数据(空白行),数据源就会失败。这可以防止使用条件开关来删除行,因为数据流永远不会启动。
这是对正常功能的准确描述吗?有什么办法可以解决吗?
样本数据看起来像 -
COL1|COL2|COL3
abc|123|10
def|456|20
ghi|789|30
我有一个要在生产中部署的应用程序,它使用“荣誉系统”安全性。也就是说,所有用户都使用 SQL 用户/密码凭据连接到数据库,并且应用程序自己管理权限。后一部分并不像连接对象包含嵌入式凭据并且可以自由复制这一事实那样困扰我。我试图找到一些方法来限制与一组更有限的客户端的连接。当然,我可以创建防火墙规则来限制 IP。有没有办法通过机器帐户或域成员资格“预认证”SQL 登录?
我有三个相关的表:Parts、PartGroup 和 MarkupGroup。
零件很简单。
PartID artificial primary key
Part part number
PartGroupID Foreign key
样本数据:
1 T1000 5
2 wizbang gold 17
3 flux capacitor 2
PartGroup 是使用自链接父键建模的无环有向图(树)
PartGroupID artificial primary key
Description name of group
ParentID foreign key linked to PartGroupID
MarkupGroupID foreign key linked to MarkupGroup
样本数据看起来像这样 -
1 system null null
2 component null 1
3 software null 2
4 abc 1 3
5 xyz 1 4
6 123 4 null
7 456 4 null
8 789 5 null
9 a1 6 null
10 b2 6 null
11 c3 7 null
12 d4 7 null
13 e5 8 null
14 f6 8 null
15 alpha 3 null
16 beta 3 null
17 gamma 3 null
MarkupGroup 是将一个标记因子应用到几个 PartGroup 作为一个集合。
MarkupGroupID primary key
MarkupFactor numeric attribute field
样本数据-
1 15
2 20
3 25
4 22
我需要编写一个查询,为部件表中的每个部件返回适当的标记量。永远不会有多个标记可以应用于零件的情况。我需要递归图表以找到标记,并且在查询时我不知道需要递归多少级别才能找到非空标记。
永远不会有零件在向上树的过程中遇到多个可能的连接到边缘的情况,因此不需要进行累积。
t1000 是 xyz 类型,它有一个 MarginGroup 的外键,所以我们可以加入并获取一个值。它也有一个父母,但这无关紧要,因为我们有我们需要的价值。
Wizbang Gold 是 gamma-group 软件,它没有外键,但父节点“软件”有,我们应该返回它。
磁通电容器是一个组件,它具有指向 MarginGroup 的直接外键。返回该值。
所以结果将是:
1 T1000 22
2 wizbang gold 20
3 flux capacitor 15
我很确定我将需要一个递归 CTE 和一些 APPLY 的味道来获得这个,但我的大脑目前工作不太好。如果不是因为中间表的递归性质,这将非常简单。平台是 MS-SQL。
我在具有查找操作的数据流中看到了奇怪的行为。如果我选择“完全缓存”模式,则某些部分的查找会失败,我无法解释原因。“无缓存”和“部分缓存”一样正常工作。在这一点上,如果它神秘地失败,我不能相信生产中的“完整缓存”。
预期的结果是这样的——
1 808 larry curly moe
2 808 larry curly moe
3 314 foo bar baz
4 314 foo bar baz
5 314 foo bar baz
6 314 foo bar baz
完全缓存会产生这个 -
1 808 larry curly moe
2 808 larry curly moe
3 314 foo bar baz
4 314 foo bar baz
5 314 null null null
6 314 null null null
'314' 示例是实际结果。前两条记录正确查找,后两条失败。如果它们是缓存未命中,则它们应该对所有四行都失败。
失败是可重复的——相同的项目每次运行都以相同的顺序失败。该环境是一个隔离的测试环境,具有三个在运行之间不会发生变化的固定数据库。选择部分缓存明显变慢,这意味着有大量缓存未命中。没有一张表特别大,一千行左右。
这是怎么回事?我应该放弃使用完整缓存的希望吗?