这是在 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
但我似乎无法让它发挥作用。也许我误解了什么。有什么想法吗?
谢谢,
杰西