0
以下に示すように、元帳エントリに基づいて利用可能な残高を計算するストアドプロシージャがあります。追加のパラメータを編集して追加したいと思います。オリジナルのSPは、このクエリを実行:ストアドプロシージャの変更
SELECT SUM([amount value]) as [Bal available]
FROM [xxxxxxxxxxxx $Ledger Entries]
WHERE [Entry No_] ='number_here'
をしかし、私はそれを達成したい:
SELECT SUM([amount value]) as [Bal available]
FROM [xxxxxxxxxxxx $Ledger Entries]
WHERE [Transaction Type] ='TYPE1' and [Entry No_] ='number_here'`
任意の提案ですか?
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
少し混乱? – Leonidas199x
このコードはSQLインジェクションの影響を受けやすいようです。悪意のあるエンティティが、「blah」の会社名でprocが呼び出される状況をエンジニアリングするとします。 DROP TABLE [ユーザー]; - '' –
私はストアドプロシージャでそれを達成したかったのです。下の解決策は、私は 'TYPE1'ではなく 'TYPE1'を使用していました –