Utilisation de SQL Server J'essaie d'injecter une chaîne dans une instruction SQL basée sur une instruction if, notez que j'essaie de l'accomplir dans une procédure stockée.Procédure stockée SQL Server si chaîne d'injection d'instructions
Je reçois actuellement une erreur pour ce code:
Declare @topString varchar(240)
IF @topRecords > 0
SET @topString = 'top 500'
ELSE
SET @topString = ''
SELECT @topString * FROM(//incorrect syntax near FROM
SELECT top 500 c.Id as [Customer Id],....
UNION
SELECT top 500 c.Id as [Customer Id],....
)as table1
Order by 1 desc
Modifier
if somethingTrue
@whereCondition = '1 = 1 '
else
@whereCondition = branch = @branch
select * from table
where @whereCondition AND etc...
Correct
pour injection à l'intérieur d'une instruction if aller avec Jodrell
mais si vous avez besoin d'un top dynamique alors aller avec ce qui a été suggéré par Kaf.
merci à la fois pour l'aide!
merci pour l'aide, je vais probablement aller avec ce que vous avez dit mais le problème est que le sql est vraiment très grand, alors maintenant j'ai besoin de finir un nombre infini de guillemets simples ... zzz – rtp
@rtp Je ne peux pas nier sa douleur. J'essaye de faire mon SQL dynamique dans le client, si vous employez. Net il vient en grande partie gratuitement. – Jodrell
@Jodrell +1 pour lire et répondre à quelque chose qui n'apparaissait pas sur le message original. – Kaf