如果标题不完全准确,我深表歉意,但我不确定如何准确表达我的问题。我想仅返回结果包含 IN 语句中按特定列分组的所有项目的行。所以我的查询是:
SELECT [DRSY],
[DRRT],
[DRKY],
[DRDL01]
FROM dbo.f0005
WHERE DRKY IN ('FC', 'OO', 'SH')
Run Code Online (Sandbox Code Playgroud)
我想返回 DRSY 和 DRRT 包含所有项目“FC”、“OO”、“SH”的记录。也许一张图片可以帮助说明这一点:

我想要返回的唯一行是 DRSY = '00' 和 DRRT = 'DT' 的行,因为这包括我指定的所有 3 个值。我尝试寻找使用 IN、EXISTS 甚至 ALL 的不同方法。
我正在开发一个项目,通过将AS400中的数据加载到SQL Server 2012 Express中来创建报告数据库(仅供参考 - 我没有sql代理或sql profiler).我使用SSIS设计器下载了sql server数据工具,并在同一解决方案中创建了几个数据加载包.我已经研究过使用DTExec实用程序运行SSIS包,并且在大多数情况下它工作正常,但是,我无法将任何运行时数据记录到日志表(只有文本文件日志工作),并且由于某种原因发送电子邮件任务在通过DTExec运行时不发送电子邮件.在VS Shell中直接运行包时,这两件事都可以正常工作.
在尝试解决这些问题时,我意识到我实际上并没有在我的机器上安装集成服务 - 只是设计师.我将无法获得集成服务(很快,至少)所以我想弄清楚如何启动VS Shell,验证,构建和执行我的SSIS加载包 - 不使用DTExec实用程序,但实际上是在VS中启动Shell使用Windows Scheduler.
我知道要自己启动程序,我只会安排devenv.exe.但是我使用什么参数来使用此方法验证,构建和执行包.我能找到的关于执行包的唯一方法是使用该实用程序,并假设用户安装了SSIS,而不仅仅是设计器.
现在,如果情况变得更糟,我可以只执行加载包,然后创建一些SQL查询来汇总行数和我需要审计数据的其他东西,但似乎应该有办法做我的事情想做.