我正在研究ETL,我在SSIS包中的SQL任务中有以下sql代码.这就是我编码的方式.我正在从表中选择一个数据,并将该查询的结果作为文件.我希望以CSV格式发送此附件.我该怎么做?
EXEC sp_send_dbmail @profile_name='default',
@recipients='dev@null.com',
@subject=@SUB,
@body=@BODY,
@query= 'SELECT [MID],[HID],[MeC],[LC],[RowCDate]
FROM [JBC].[dbo].[Table1] WHERE RowCDate >= GETDATE()
',
@attach_query_result_as_file=1
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.提前致谢.
我有一个平面文件源,它从平面文件中读取数据.我们最近在这个平面文件中添加了一个新列.
平面文件数据被插入数据库表中.为了适应目标组件中的新字段,我使用该ALTER TABLE语句将新列添加到表中.这是我所做的唯一改变.
平面文件和目标组件之间的映射是否应自动更改?我没有在SSIS包中的任何位置看到平面文件中存在其他列.
如何在SSIS包中的平面文件中配置附加列,以便平面文件源可以将数据传递到目标组件?
在我的 ssis 包中,我在序列容器中有数据流任务。OLEDB 是源文件,平面文件是目标文件。我为平面文件的位置提供了一个变量 (@[User::strUnknownFileLocation])。同样对于平面文件的名称,我添加了一个变量(@[User::StrUnknownFileName])。在数据流任务之后,我有发送邮件任务。我在发送邮件任务中将该平面文件作为附件附加。
这是我在文件名变量 (@[User::StrUnknownFileName]) 中评估的表达式。我已将其设置为属性中的 Evaluate Expression 为 True。
"UnknownValue_"+ (DT_STR,4,1252)YEAR(getdate()) +(MONTH( getdate()) < 10 ? "0" : "")+ (DT_STR,4,1252)MONTH(getdate()) +(DAY( getdate()) < 10 ? "0" : "") + (DT_STR,4,1252)DAY(getdate()) + ".txt"
Run Code Online (Sandbox Code Playgroud)
这是在我的平面文件连接属性表达式中 --Connection string
@[User::strUnknownFileLocation]+ @[User::StrUnknownFileName]
Run Code Online (Sandbox Code Playgroud)
这是在我的平面文件连接属性表达式中
文件位置的变量我没有任何表达。我在变量中添加了位置值
(@[User::strUnknownFileLocation]).
Run Code Online (Sandbox Code Playgroud)
像 M:\ETL\Tmp\ 在发送邮件任务中,我有一个附件,附件的表达式如下所示,
@[User::strUnknownFileLocation]+ @[User::StrUnknownFileName]
Run Code Online (Sandbox Code Playgroud)
我跑了包昨天很好。它附加了一个名为 UnknownValue_20130405.txt 的文件。但是今天打开包裹的时候,在发送邮件的任务中出现了错误。当我单击错误时,它说找不到文件 UnknownValue_20130406.txt 或我无权打开该位置。它有点奇怪。
所以,我执行 DFT 任务。所以文件生成了。然后它可以工作,因为文件在那里。那么为什么它不首先运行。所以现在明天当我打开我的包并尝试运行时,它不会运行,因为那个日期没有文件?但是,如果我只运行 DFT 任务,它将生成一个平面文件,并且在该位置会有一个平面文件。但这不是它应该的样子。
有什么我做错了吗?我无法理解这一点。任何帮助将不胜感激。
提前致谢。
我有2个表,表A和表B.我将表B中的值插入表A.表A有列(键,ID,名称,LOB,a,b,c,d,e,f).表B具有列(密钥,ID,名称,LOB,a,b,c,d,组).现在我有这样的陈述,
Insert ##Table A
(Key,
ID,Name,LOB,a,b,c
)
Select
Key,
ID,Name,LOB,a,b,c)
From Table B where Key = "blah"
Run Code Online (Sandbox Code Playgroud)
现在不是从表B中选择LOB,而是希望将组列和那些值插入表A中的列"LOB"
我怎么做?
我试图从每个服务器/数据库中删除表.
我运行查询以从不同的服务器获取每个数据库中的表列表.
SELECT *
FROM sys.objects
WHERE type = 'u' AND name LIKE '%JSK%'
Run Code Online (Sandbox Code Playgroud)
我想放弃那些桌子.
我需要查询怎么做?
ssis ×3
attachment ×1
dataflow ×1
etl ×1
insert ×1
object ×1
select ×1
sql ×1
sql-server ×1
system ×1