私は動的SQLコマンドに渡される入力パラメータが少ないストアドプロシージャを作成しました。入力パラメータの1つに「NULL」を渡すと、動的SQL文全体がNULLになります。サンプルコードは次のとおりです。動的SQLのNULL値の処理(挿入)
DECLARE @FName VARCHAR(10);
DECLARE @MName VARCHAR(10);
DECLARE @LName VARCHAR(10);
DECLARE @InsertSql VARCHAR(MAX);
SET @FName = 'John';
SET @MName = NULL;
SET @LName = 'Williams';
SET @InsertSql = 'INSERT INTO TestName (TestIDFirstName,TestMiddleName,TestLastName) Values (''' + @FName + ''',''' + @MName + ''',''' + @LName + ''')';
SELECT @InsertSql; --Returns NULL.
入力パラメータのいずれかがNULL値の場合、どのように処理しますか?私は1つのInsertステートメントでこのケースを処理したい。
1.データベースを?あなたの本当のコードがこれと遠隔的に似ているなら、あなたはかなりSQLインジェクションを求めています。続行する前にそれについてお読みください。 –
SQL内でstringを結合/連結する際に、NULLがあればNULLを返します。疑わしい変数に対してISNULLまたはCOALESCEを使用してください。 – par
@AlexeyRomanovは、MSSQLデータベース – bhuvana