동적 SQL 명령에 전달 된 입력 매개 변수가 적은 저장 프로 시저를 만들었습니다. 입력 매개 변수 중 하나에 '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 값이있는 경우 어떻게 처리합니까? 하나의 Insert 문으로이 사건을 처리하고 싶습니다.
1. 데이터베이스를? 2. 실제 코드가이 코드와 원격으로 비슷하다면 SQL 주입을 요구할 것입니다. 계속하기 전에 그것에 대해 읽어보십시오. –
SQL에서 문자열을 조인/연결하는 중에 하나가 NULL이면 NULL을 반환합니다. ISNULL 또는 COALESCE를 의심스러운 변수에 사용하십시오. – par
@AlexeyRomanov, MSSQL 데이터베이스 – bhuvana