这是在SQL Server 2005 SSIS中:
我对SSIS事情有点新意。是否可以在TSQL或执行SQL任务中“设置”包级别用户定义的变量?我了解如何映射单个行集查询的结果。但是,假设我想在一个任务中映射3个变量?
请考虑以下事项:
DECLARE @Table1 VARCHAR(255)
SET @Table1 = 'Z_Cisco_CallDetail_' + CONVERT(varchar, YEAR(DATEADD(MILLISECOND, -3, DATEADD(YEAR,DATEDIFF(YEAR, 0, DATEADD(YEAR, -1, GETDATE())) + 1, 0))))
--create table
DECLARE @Table2 VARCHAR(255)
SET @Table2 = 'Z_Cisco_AgentConnDetail_' + CONVERT(varchar, YEAR(DATEADD(MILLISECOND, -3, DATEADD(YEAR,DATEDIFF(YEAR, 0, DATEADD(YEAR, -1, GETDATE())) + 1, 0))))
--create table
DECLARE @Table3 VARCHAR(255)
SET @Table3 = 'Z_AWK_CallRecords_' + CONVERT(varchar, YEAR(DATEADD(MILLISECOND, -3, DATEADD(YEAR,DATEDIFF(YEAR, 0, DATEADD(YEAR, -1, GETDATE())) + 1, 0))))
--create table
现在我想将这3个动态表名映射到用户定义的包变量。我在另一个线程中看到了这种语法:
SET @[User::Cisco_CallRecords_Tablename] = @Table1
但我似乎无法让它发挥作用。也许我误解了一些事情。有什么想法吗?
谢谢,
杰西