I am using SSIS 2008 R2 trying to add this script to my package. This is the source script for populating my table. I know my package works with a different source script. Does SSIS support temp tables? This script works perfectly
in SSMS. How else can I do this? Like to have to use multiple data sources, one for each temp table in SSIS instead?
This is my SQL script that I added to the OLE DB Source editor in the Data Flow. Note that I currently just have a total of one Source connection and one source query in SSIS:
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects o WHERE o.xtype IN ('U') AND o.id = object_id(N'tempdb..#GC_clientaddress')) DROP TABLE #GC_clientaddress;
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects o WHERE o.xtype IN ('U') AND o.id = object_id(N'tempdb..#client_demographics')) DROP TABLE #client_demographics;
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects o WHERE o.xtype IN ('U') AND o.id = object_id(N'tempdb..#max_dates')) DROP TABLE #max_dates;
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects o WHERE o.xtype IN ('U') AND o.id = object_id(N'tempdb..#max_dates2')) DROP TABLE #max_dates2;
select distinct
CONVERT(nvarchar(20),c.clientcode_c) AS client_id, --Legacy CDT# (must be the same legacy ID for all conversion tables)
CONVERT(nvarchar(50),c.lastname_vc) AS last_name,
CONVERT(nvarchar(50),c.firstname_vc) AS first_name,
CONVERT(nvarchar(15),isnull(c.middlename_vc,'')) AS middle_name,
CONVERT(nvarchar(20),c.altclientcode_vc) AS agency_id_no, --TNKIDS Number
CONVERT(nvarchar(50),
CASE
WHEN c.gender_c = 'M' THEN 'Male'
WHEN c.gender_c = 'F' THEN 'Female'
WHEN c.gender_c = 'U' THEN 'Unknown'
ELSE 'Unknown'
END) AS gender,
CONVERT(varchar(20),
CASE
WHEN c.gender_c = 'M' THEN 'M'
WHEN c.gender_c = 'F' THEN 'F'
WHEN c.gender_c = 'U' THEN 'U'
Else 'U'
END ) AS gender_code,
CONVERT(nvarchar(9),(SUBSTRING(c.socialsecnum_c, 1,3)+SUBSTRING(c.socialsecnum_c, 5,2)+SUBSTRING(c.socialsecnum_c, 8,4))) AS ss_number,
c.birthdate_d AS date_of_birth,
--CONVERT(nvarchar(50), address1_vc) AS street_address_1,
--CONVERT(nvarchar(50), address2_vc) AS street_address_2,
--CONVERT(nvarchar(50), city_vc) AS City,
--CONVERT(nvarchar(50), state_c) AS state,
--CONVERT(nvarchar(2), state_c) AS state_code,
--CONVERT(nvarchar(9), zip_c) AS zip_code,
CONVERT(nvarchar(50),
CASE
WHEN c.religion_c = 'A' THEN '7th Day Adventist'
WHEN c.religion_c = 'AG' THEN 'Agnostic'
WHEN c.religion_c = 'AT' THEN 'Atheist'
WHEN c.religion_c = 'B' THEN ' Buddhist'
WHEN c.religion_c = 'BA' THEN 'Baptist'
WHEN c.religion_c = 'C' THEN 'Catholic'
WHEN c.religion_c = 'E' THEN 'Episopalian'
WHEN c.religion_c = 'EC' THEN 'Ecumencial'
WHEN c.religion_c = 'H' THEN 'Hindu'
WHEN c.religion_c = 'HG' THEN 'Huguenot'
WHEN c.religion_c = 'J' THEN 'Jewish'
WHEN c.religion_c = 'JW' THEN 'Jehovahs Witness'
WHEN c.religion_c = 'L' THEN 'Lutheran'
WHEN c.religion_c = 'MU' THEN 'Muslim'
WHEN c.religion_c = 'ME' THEN 'Methodist'
WHEN c.religion_c = 'MEN' THEN 'Mennonite'
WHEN c.religion_c = 'MO' THEN 'Mormon'
WHEN c.religion_c = 'M' THEN 'Moslem'
WHEN c.religion_c = 'N' THEN 'None'
WHEN c.religion_c = 'NO' THEN 'Nondenominational'
WHEN c.religion_c = 'O' THEN 'Other'
WHEN c.religion_c = 'P' THEN 'Protestant'
WHEN c.religion_c = 'PC' THEN 'Pentecostal'
WHEN c.religion_c = 'PS' THEN 'Presbyterian'
WHEN c.religion_c = 'Q' THEN 'Quaker'
WHEN c.religion_c = 'UN' THEN 'Unknown'
WHEN c.religion_c = 'UT' THEN 'Unitarian'
ELSE 'Unknown'
END) AS religion,
UPPER(CONVERT(varchar(20),
CASE -- Cased out religion codes KMH 06/17/10
WHEN c.religion_c = 'A' THEN 'A'
WHEN c.religion_c = 'AG' THEN 'AG'
WHEN c.religion_c = 'AT' THEN 'AT'
WHEN c.religion_c = 'B' THEN ' B'
WHEN c.religion_c = 'BA' THEN 'BA'
WHEN c.religion_c = 'C' THEN 'C'
WHEN c.religion_c = 'E' THEN 'E'
WHEN c.religion_c = 'EC' THEN 'E'
WHEN c.religion_c = 'H' THEN 'H'
WHEN c.religion_c = 'HG' THEN 'HG'
WHEN c.religion_c = 'J' THEN 'J'
WHEN c.religion_c = 'JW' THEN 'JW'
WHEN c.religion_c = 'L' THEN 'L'
WHEN c.religion_c = 'MU' THEN 'MU'
WHEN c.religion_c = 'ME' THEN 'ME'
WHEN c.religion_c = 'MEN' THEN 'MEN'
WHEN c.religion_c = 'MO' THEN 'MO'
WHEN c.religion_c = 'M' THEN 'M'
WHEN c.religion_c = 'N' THEN 'N'
WHEN c.religion_c = 'NO' THEN 'NO'
WHEN c.religion_c = 'O' THEN 'O'
WHEN c.religion_c = 'P' THEN 'P'
WHEN c.religion_c = 'PC' THEN 'PC'
WHEN c.religion_c = 'PS' THEN 'PS'
WHEN c.religion_c = 'Q' THEN 'Q'
WHEN c.religion_c = 'UN' THEN 'UN'
WHEN c.religion_c = 'UT' THEN 'UT'
ELSE 'UN'
END)) AS religion_code,
CONVERT(nvarchar(50), --Added ethnicity case statement KMH 5/26/10
CASE
WHEN c.race_c = 'H' THEN 'Hispanic'
ELSE 'Non Hispanic'
END) AS ethnicity,
CONVERT(nvarchar(20), --Added ethnicity case statement KMH 5/26/10
CASE
WHEN c.race_c = 'H' THEN '01'
ELSE '02'
END) AS ethnicity_code,
CONVERT(nvarchar(50),
CASE
WHEN c.race_c = 'A' THEN 'Asian'
WHEN c.race_c = 'AI' THEN 'American Indian'
WHEN c.race_c = 'B' THEN 'African American'
WHEN c.race_c = 'BR' THEN 'Bi-racial'
WHEN c.race_c = 'C' THEN 'Caucasian'
WHEN c.race_c = 'H' THEN 'Hispanic'
WHEN c.race_c = 'ME' THEN 'Middle Eastern'
WHEN c.race_c = 'N' THEN 'Native Hawaiian/Other Pacific Islander'
WHEN c.race_c = 'O' THEN 'Other'
ELSE 'Other'
END) AS race_1,
UPPER(CONVERT(varchar(20),
CASE
WHEN c.race_c is NULL THEN 'U'
WHEN c.race_c = 'A' THEN 'A'
WHEN c.race_c = 'AI' THEN 'AI'
WHEN c.race_c = 'B' THEN 'B'
WHEN c.race_c = 'BR' THEN 'BR'
WHEN c.race_c = 'C' THEN 'C'
WHEN c.race_c = 'H' THEN 'H'
WHEN c.race_c = 'ME' THEN 'ME'
WHEN c.race_c = 'N' THEN 'N'
WHEN c.race_c = 'O' THEN 'O'
ELSE 'U'
END))AS race_1_code,
CONVERT(nvarchar(150), 'ar.client') AS original_table_name
into #client_demographics
from
ar.client c
INNER JOIN cd.enrollments en ON (c.uniqueid_c = en.clientid_c)
INNER JOIN cd.episode ep ON (ep.uniqueid_c = en.episodeid_c and ep.clientid_c = c.uniqueid_c)
where
(ep.enddate_d is NULL OR ep.enddate_d >= getdate()-729) and
en.location_c in (select code from dbo.yv_LKUP_OfficeLocation where state = 'TN')--change data pull with states here (check location codes on dbo.yv_LKUP_OfficeLocation)
select distinct
c.clientcode_c,
c.firstname_vc,
c.lastname_vc,
ad.type_c,
ad.startdate_d,
ad.enddate_d,
ad.address1_vc,
ad.address2_vc,
ad.city_vc,
UPPER(ad.state_c) as state,
ad.zip_c,
ad.county_vc
into #GC_clientaddress
from
echo.er_address ad
LEFT JOIN ar.client c ON (ad.linkid_c = c.uniqueid_c)
INNER JOIN cd.episode ep ON (ep.clientid_c = c.uniqueid_c)
where
c.clientcode_c in (select client_id from #client_demographics)
select gc.clientcode_c, MAX(gc.startdate_d) AS maxdate
into #max_dates
from #GC_clientaddress gc
where
gc.clientcode_c in (select clientcode_c from #GC_clientaddress)
AND(gc.enddate_d is NULL OR gc.enddate_d >= getdate()-730)
group by gc.startdate_d, gc.clientcode_c
--having count(*) > 2
select distinct clientcode_c, max(maxdate) maxdate
into #max_dates2
from #max_dates
group by clientcode_c
order by clientcode_c
select distinct cd.client_id,
cd.last_name,
cd.first_name,
cd.middle_name,
cd.agency_id_no,
cd.gender,
cd.gender_code,
cd.ss_number,
cd.date_of_birth,
cd.religion,
cd.religion_code,
cd.ethnicity,
cd.ethnicity_code,
cd.race_1,
cd.race_1_code,
cd.original_table_name,
gc.type_c,
gc.startdate_d,
gc.enddate_d,
gc.address1_vc,
gc.address2_vc,
gc.city_vc,
gc.[state],
gc.zip_c,
gc.county_vc
from #client_demographics cd
left join #GC_clientaddress gc on gc.clientcode_c = cd.client_id
join #max_dates2 md on md.clientcode_c = gc.clientcode_c and md.maxdate = gc.startdate_d
This script works perfectly when run in SSMS, but fails with this error and no columns appear in the SSIS Editor interface.
![]()
Ryan D