2017-08-04 22 views
0

非常烦人的是,看到SSIS正在用SQL执行SQL Task组件替换SQL中的新行字符。但是,它与OLE DB Source组件中的SQL不同。如何在SQL任务中更改SQL的格式,如OLE DB中的源码

更新:对不起,最初不清楚。这就是我的意思

这是一个在Execute SQL Task的设计器中看起来有多条线的大SQL。

SQL of Execute SQL Task in designer

当你看到它的代码/ XML被翻转换成用XML代码,这使得它不仅难读,但几乎不可能与旧版本比较单行(&#x

SQL of Execute SQL Task in code window

现在,如果我们使用相同的SQL长在DFT的OLE DB源,它看起来这个(貌似正确的,没有任何问题)

SQL of OLE DB source in designer

不像Execute SQL Task,SQL显示在此代码窗口相同(见新行字符被保留,SQL不与XML代码的改变)

enter image description here

有什么办法,我们可以覆盖这个行为,所以sql存储在多行,这使我们很容易区分?

我使用SQL Server 2014和Visual Studio的2015年

+1

你的问题不清楚!你在寻找SQL查询格式化程序(https://sqlformat.org)吗? – Yonas

+0

不知道你在说什么。请张贴截图。 –

+0

从未发生过我。可以分享一些截图吗? – theDbGuy

回答

0

回答你的 “为什么” 的问题 - Execute SQL Task卖场SQL文本作为XML标签属性,而文本节点OLE DB Source商店SQL文本。前者更像是传统的DTSX,如SSIS 2005/2008套件和后者 - 更像是SSIS 2012+的DTSX。
这是通过MS设计。如果您需要比较查找SQL命令的两个文件 - 为Execute SQL Task属性编写XSLT变换,并比较/查看变换结果。

0


是字符10的HTML实体,它是换行符。所以XML文件确实包含格式化信息。但是,您并不打算直接将XML文件读取或修改为.dtsx文件。使用基于行的版本控制难以阅读或易于管理不是设计考虑因素。

我们更喜欢为每个查询创建VIEWs,然后我们将VIEW定义放入版本控制以及.dtsx文件中。这还具有能够将代理帐户的安全设置放入SQL文件的优点。

相关问题