我曾经在这个论坛上问过这个问题: 我需要将空行添加到SQL SELECT语句中,其结果应为10的倍数,这意味着如果表中有8行,则应添加2个空行,以便select语句有10行,如果表中有16行,应添加4空行,以便select语句有20行,依此类推。总之,选择的行必须始终为10、20、30 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有一个包含多个容器的软件包,每个容器中都有多个任务,如下所示。
在包执行期间,我需要将每个容器和任务详细信息记录到如下表中。
LogID Container Task Status Error LoggedOn
1 SEQ - Customer truncate customer table SUCCESS 2015-03-31 02:22:50.267
2 SEQ - Customer create temp table to store SUCCESS 2015-03-31 02:22:50.267
3 SEQ - Customer DF - Loading Customers SUCCESS 2015-03-31 02:22:50.267
4 SEQ - Customer Validating Customers FAILED Failed to convert from varchar to bigint 2015-03-31 02:22:50.267
如果在任何特定任务上发生任何错误,则应将错误描述记录在表的错误列中。请帮助我如何通过事件处理程序或登录sis来实现此目的。
我是通过使用OnPreExecute,OnError事件处理程序来获得的。我已经将此选择为包级别的事件处理程序,并创建了一个变量:: Container(string)。选择包并生成这两个事件处理程序。
在执行SQL任务-> OnPreExecute事件中使用以下脚本。
SourceDescription-- Input
PackageName-- Input
Container-- Input
SourceName-- Input
Container-- Output
DECLARE @TaskType VARCHAR(500),@Package VARCHAR(500),@Container VARCHAR(500),@Task varchar(500)
SELECT @TaskType = ?,@Package =?,@Container= ?,@Task = ?
IF(@TaskType ='Sequence Container')
BEGIN
SET @Container = @Task
END
ELSE IF(@Package <>@Task)
BEGIN
INSERT INTO LogTable(Package,Container,Task,Status)
SELECT @Package,@Container,@Task,'SUCCESS'
END
SET ? = @Container
及以下OnError事件中的脚本
SourceDescription-- Input
PackageName-- Input
Container-- Input
SourceName-- Input
ErrorDescription--Input
DECLARE @TaskType VARCHAR(500),@Package VARCHAR(500),@Container VARCHAR(500),@Task varchar(500),@Error VARCHAR(1000)
SELECT @TaskType = ?,@Package =?,@Container= ?,@Task = ?,@Error=?
IF(@TaskType ='Sequence Container')
BEGIN
SET @Container = @Task
END
ELSE IF(@Package <>@Task)
BEGIN
INSERT INTO LogTable(Package,Container,Task,Status,Error_Desc)
SELECT @Package,@Container,@Task,'FAILED',@Error
END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.