0
Ich habe eine gespeicherte Prozedur, die das verfügbare Guthaben basierend auf Ledger-Einträgen berechnet, wie unten gezeigt. Ich möchte einen zusätzlichen Parameter bearbeiten und hinzufügen; Die ursprüngliche SP führt nur diese Abfrage:Ändern einer gespeicherten Prozedur
SELECT SUM([amount value]) as [Bal available]
FROM [xxxxxxxxxxxx $Ledger Entries]
WHERE [Entry No_] ='number_here'
Aber ich will, es zu erreichen:
SELECT SUM([amount value]) as [Bal available]
FROM [xxxxxxxxxxxx $Ledger Entries]
WHERE [Transaction Type] ='TYPE1' and [Entry No_] ='number_here'`
Irgendwelche Vorschläge?
ALTER PROCEDURE [dbo].[loadbal]
(
@Company_Name varchar(100),
@EntNo varchar(100)
)
AS
BEGIN
DECLARE @SQL VARCHAR(4000)
DECLARE @TableName VARCHAR(4000)
SET @TableName='['[email protected]_Name+' $Ledger Entries]'
SELECT @SQL = ' SELECT SUM([amount value]) as [Bal available]
FROM '[email protected]+' WHERE [Entry No_] ='[email protected]
EXEC (@SQL)
END
Bit verwirrt, wie es erscheinen würden Sie Ihre eigene Frage beantwortet haben? – Leonidas199x
Dieser Code scheint für SQL-Injection anfällig zu sein. Angenommen, eine bösartige Entität erstellt eine Situation, in der der Proc mit dem Firmennamen "Blah" aufgerufen wird; DROP TABLE [Benutzer]; - '' –
Ich wollte es in einer gespeicherten Prozedur erreichen. Die Lösung unten funktioniert, ich habe 'TYPE1' anstatt '' TYPE1 '' verwendet –