Frage : Gespeichertes Verfahren des SQL-Servers

Ich habe ein gespeichertes Verfahren wie folgt. Meine Frage ist kann ich benutzen #tmp_ Tabellen (ex #tmp_initial_RMD_candidates) um Zwischendaten einzusetzen und die abschließenden Daten in einer „tp_“ Tabelle dann zu laden, die benutzt, um einen Report zu erzeugen?
************************** ********** ********** ********** ********** ********** ********** *********
If EXISTIERT (* VON INFORMATION_SCHEMA.TABLES VORWÄHLEN IN DEM TABLE_SCHEMA = „dbo“ UND TABLE_NAME = „tp_rmd_rpt "),
TROPFEN-TABELLE tp_rmd_rpt
GO
IF EXISTIERT (AUSERWÄHLTER Name vom sysindexes
WO Name = „ix01“)
TROPFEN-INDEX tp_rmd_rpt.ix01
GO
--Tabelle tp_rmd_rpt
create Tabelle dbo.tp_rmd_rpt
(
prsn_id int,
pers_id int,
das ss_nr fallenlassen varchar (9),
das fst_nm varchar (20),
das mid_nm varchar (20),
das last_nm varchar (20),
sfx_cd Putzfrau (4),
brth_dt Datum/Uhrzeit,
deth_dt Datum/Uhrzeit,
-- Dezimalstrich (4.1),
RMD_dt datetime
)
GO
create Index ix01 auf tp_rmd_rpt (pers_id)
GO
/****** Gegenstand altern:  StoredProcedure [dbo]. [csp_rmd_rpt] Index-Datum: 06/02/2010 07:24: 22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
************************** ********** ********** ********** ********** ********** ********** ********** ****
* Gegenstand:            Gespeichertes Verfahren dbo.csp_rmd_rpt
************************** ********** ********** ********** ********** ********** ********** ********** ****
*/
IF EXISTIERT (* VON INFORMATION_SCHEMA.ROUTINES VORWÄHLEN, WO ROUTINE_SCHEMA = „dbo“ UND ROUTINE_NAME = „csp_rmd_rpt ")
VERFAHREN dbo.csp_rmd_rpt

as

begin

declare @rpt_run_dt datetime
select DES TROPFEN-VERFAHRENS-dbo.csp_rmd_rpt
GO

CREATE @rpt_run_dt = busn_dt vom be_busn_dt

Select
be_prsn.prsn_id,
pers_id,
fst_nm,
mid_nm,
last_nm,
sfx_cd,
brth_dt,
deth_dt,
convert (Dezimalstrich (5.2), (CASE, WENN DATEPART (d, getdate ()) >= DATEPART (d, brth_dt) DANN (DATEDIFF (m, brth_dt, getdate ()) /12.0)
SONST ((DATEDIFF (m, brth_dt, getdate ()) - 1)/12.0) ENDE))  altern,
(Fall, wenn Tag (dateadd (Monat, ((70*12) +6), brth_dt)) = 1 dann dateadd (Monat, ((70*12) +6), brth_dt)
sonst dateadd (Tag, 1-tägig (dateadd (Monat, ((70*12) +6), brth_dt)), dateadd (Monat, 1, dateadd (Monat, ((70*12) +6), brth_dt)))
Ende) RMD_dt
into #tmp_initial_RMD_candidates
From be_prsn, be_empt_hist, be_mbr_acct, acct_stat_vw, be_mbr
Where be_prsn.prsn_id = be_mbr.prsn_id
und be_empt_hist.mbr_id = be_mbr_acct.mbr_id
und be_empt_hist.mbr_id = be_mbr.mbr_id
und be_mbr_acct.acct_id = acct_stat_vw.acct_id
und be_mbr_acct.mbr_id = be_mbr.mbr_id
und be_empt_hist.end_dt (auserwähltes a.max_end_dt
von (auserwähltes mbr_id, maximales (end_dt) max_end_dt vom be_empt_hist
wo mbr_id = be_mbr.mbr_id
Gruppe durch mbr_id) im a
wo a.max_end_dt! = „2999-12-31“)
und pers_id IST NICHT NULL
und pln_id <> 3
und DATEDIFF (MONAT, brth_dt, BEKEHRTER (DATUM/UHRZEIT, '04.15. '+ GEWORFEN (FALL, WENN MONAT (getdate ()) > 4 DANN JAHR (getdate ()) + 1 SONST JAHR (getdate ()) ENDE, WIE varchar)) ) > 846
und acct_stat_vw.eff_dt =
(
VORWÄHLEN max (x.eff_dt)
vom acct_stat_vw ALS x
br, DEM x.acct_id = acct_stat_vw.acct_id UND x.acct_id = be_mbr_acct.acct_id
und x.acct_stat_cd („TAT“, „WARTEZEIT“, „DTH ")
und Bekehrter (Putzfrau (10), x.eff_dt, 111) + str (x.acct_id) =
(das auserwählte
maximal (Bekehrter, str (der Putzfrau (10), x2.eff_dt, 111) + (x2.acct_id))

acct_stat_vw x2
vom where
x2.acct_id = acct_stat_vw.acct_id und x2.acct_id = be_mbr_acct.acct_id
)
)
und acct_stat_vw.acct_stat_cd („TAT“, „WARTEN“, „DTH "), im
group durch be_prsn.prsn_id,
pers_id,
ss_nr,
fst_nm,
mid_nm,
last_nm,
sfx_cd,
brth_dt,
deth_dt,
(FALL, WENN DATEPART (d, getdate ()) >= DATEPART (d, brth_dt) DANN (DATEDIFF (m, brth_dt, getdate ()) /12.0)
SONST ((DATEDIFF (m, brth_dt, getdate ()) - 1)/12.0) ENDE) --dieses von der abschließenden Akte entfernen, da das Alter nicht im abschließenden file.
angezeigt, (Fall, wenn Tag (dateadd (Monat, ((70*12) +6), brth_dt)) dann dateadd =1 (Monat, ((70*12) +6), brth_dt)
sonst
dateadd (Tag, 1-tägig (dateadd (Monat, ((70*12) +6), brth_dt)), dateadd (Monat, 1, dateadd (Monat, ((70*12) +6), brth_dt)))
Ende)

--acct_bal
select
initial_rmd_accts.pers_id,
initial_rmd_accts.deth_dt,
sum (vw.pre_tax_cntrb+
vw.post_tax_cntrb +
vw.empr_pre_tax_cntrb +
vw.var_empr_pre_tax_cntrb_amt +
vw.var_post_tax_cntrb_amt +
vw.var_pre_tax_cntrb_amt+
vw.unt_cntrb_amt +
vw.pre_tax_unt_cntrb_amt+
vw.rglr_int_item_amt+
vw.var_int_item_amt +
vw.unit_int_item_amt) als tot_acct_bal
into #acct_bal
from #tmp_initial_RMD_candidates initial_rmd_accts, mam_acct_bal_vw VW, be_prsn a, be_mbr b, be_mbr_acct c
where a.pers_id = initial_rmd_accts.pers_id
und a.prsn_id = initial_rmd_accts.prsn_id
und b.prsn_id = a.prsn_id
und c.mbr_id = b.mbr_id
und vw.acct_id = c.acct_id
und c.pln_id <> 3
group erhalten durch initial_rmd_accts.pers_id, initial_rmd_accts.deth_dt

select
tprmd.pers_id pers_id,
acctbal.deth_dt deth_dt,
acctbal.tot_acct_bal,
tprmd.prsn_id prsn_id,
tprmd.fst_nm fst_nm,
tprmd.mid_nm mid_nm,
tprmd.last_nm last_nm,
tprmd.sfx_cd sfx_cd,
tprmd.brth_dt brth_dt,
tprmd.RMD_dt RMD_dt,
case, wenn acctbal.tot_acct_bal = 0.0 und acctbal.deth_dt nicht dann „ungültig ist, ausschließen“
br, wenn (acctbal.tot_acct_bal = 0.0 und acctbal.deth_dt ist ungültig), oder (acctbal.tot_acct_bal > 0.0 und acctbal.deth_dt ist ungültig), oder (acctbal.tot_acct_bal > 0.0 und acctbal.deth_dt ist nicht ungültig), Ende als RMD_flag
into #tmp_rmd_flag
from tp_rmd_rpt tprmd „dann einschließen“, anschließen #acct_bal acctbal
auf acctbal.pers_id = tprmd.pers_id

insert in tp_rmd_rpt
select
prsn_id,
pers_id,
ss_nr,
fst_nm,
mid_nm,
last_nm, „umfassen“
sfx_cd,
brth_dt,
deth_dt,
RMD_dt
from #tmp_rmd_flag
where RMD_flag = --3486

RETURN
END

Antwort : Gespeichertes Verfahren des SQL-Servers

die below Linie und die Überprüfung bitte addieren

keine globale (nach innen) 1 Schnittstelle
sysopt Anschluss ermöglichen-vpn
Zugangliste kein-nationales ausgedehntes Erlaubnis-IP 10.200.1.0 255.255.255.0 172.25.20.0 255.255.255.0
Zugangliste kein-nationales ausgedehntes Erlaubnis-IP 10.200.1.0 255.255.255.0 172.25.30.0 255.255.255.0
nationale (nach innen) 0 Zugangliste kein-national
Weitere Lösungen  
 
programming4us programming4us