ALTER PROCEDURE [dbo].[usp_RmsExecuteValidationRule]
@nRuleId INT
AS
BEGIN
-- Local variables
DECLARE @sqlstat AS NVARCHAR(MAX)
DECLARE @params AS NVARCHAR(MAX)
DECLARE @RULE_QUERY NVARCHAR(MAX)
DECLARE @FIPS varchar(5)
SET @sqlstat = N'SELECT @RULE_QUERY=RULE_QUERY from GdmValidationRuleMaster where RULE_ID = @nRuleId'
--SET @sqlstat = N'SELECT ' + @RULE_QUERY + '=RULE_QUERY from GdmValidationRuleMaster where RULE_ID = ' + @nRuleId
SET @params = N'@nRuleId INT, @RULE_QUERY NVARCHAR(MAX) OUTPUT'
EXEC sp_executesql @sqlstat, @params, @nRuleId = @nRuleId, @RULE_QUERY= @RULE_QUERY OUTPUT
-- Output
SELECT @RULE_QUERY
END
Wenn wir Exec usp_RmsExecuteValidationRule 1
, es gibt @RULE_QUERY
dh:Nicht in der Lage zu passieren und Anfügen @variable auf der ausgewählten Abfrage
SELECT GDMID AS GDM_ID from @FIPSName+CADMIN1 WHERE INTPRIORITY IS NULL
Hier habe ich absichtlich hinzugefügt @ FIPSName + als Präfix, weil ich einen anderen Tisch LCountry
mit eine FIPS
Säule:
FIPS
----
GM
FR
UK
AN
BE
BU
BL
BR
BH
CA
AU
VT
CI
CH
CO
CS
EZ
AS
DA
EC
SP
AR
BD
BB
BF
AV
AA
AC
DO
CU
CJ
DR
GP
GJ
HA
JM
ST
RQ
SC
MB
MH
XN
XM
XJ
VC
VI
TK
TD
TB
RN
XL
XK
VQ
GR
GT
GQ
HK
HO
HU
ID
EI
IS
GZ
XC
WE
IN
IT
SM
JA
LS
LU
MX
NU
NL
NO
NZ
PM
PE
RP
PL
PO
RO
SW
SI
LO
ES
TU
TW
SZ
VE
SN
SB
PF
PG
PC
NE
NF
MQ
US
SX
TE
TT
WQ
BQ
DQ
BS
CK
CQ
CR
AY
AT
BV
LQ
KQ
JQ
JU
KT
IO
IP
mit Schleife ich bin der Lage, Daten mit ObjectID Lcountry holen.
DECLARE @LoopCounter INT , @MaxBcountryObjId INT,
@FIPSName NVARCHAR(100)
SELECT @LoopCounter = min(OBJECTID) , @MaxBcountryObjId = max(OBJECTID)
FROM dbo.LCOUNTRY
WHILE(@LoopCounter IS NOT NULL
AND @LoopCounter <= @MaxBcountryObjId)
BEGIN
SELECT @FIPSName = FIPS
FROM dbo.LCOUNTRY WHERE OBJECTID = @LoopCounter
PRINT @FIPSName
SET @LoopCounter = @LoopCounter + 1
Diese Abfrage gibt @FIPSName zurück.
FRAGE
I Wert @FIPName Should Hängt auf Rule_Query Rückgabewert dieser Rückkehr wollen. und der gleiche Wert kann auch ausgeführt werden.
Beispiel:
SELECT GDMID AS GDM_ID from @FIPSName+CADMIN1 WHERE INTPRIORITY IS NULL
Changes Into
SELECT GDMID AS GDM_ID from GM+CADMIN1 WHERE INTPRIORITY IS NULL
Changes Into
GDMID
------ (The above query must be executed and Return GDMID.)
1198
@Gordon freundlicherweise Lösung vorschlagen .. Danke. – Chetan
@vkp freundlicherweise schlagen Lösung .. Danke – Chetan
@ rory.ap freundlicherweise Lösung vorschlagen .. Danke – Chetan