Khageswar Rao Ответов: 1

Незакрытые кавычки после символов '= " или имеет значение null)заказ по идентификатору) как STARTING_ID на MAINTABLE.ID >= STARTING_ID.ID'


<pre>SET @SQLString = 'DELETE MAINTABLE FROM ' + @TEMP_SALARY_DETAILS + '  AS MAINTABLE                
           JOIN(SELECT TOP 1 ID AS ID                 
             FROM  ' + @TEMP_SALARY_DETAILS + '                 
            WHERE( ' + @RS_EMPLOYEE_SERIAL_NO +  '       = '''' OR ' + @RS_EMPLOYEE_SERIAL_NO+ '        IS NULL)                
             AND ( ' + @RS_PAN_OF_THE_EMPLOYEE +  '      = '''' OR ' + @RS_PAN_OF_THE_EMPLOYEE + '      IS NULL)               
             AND ( ' + @RS_NAME_OF_THE_EMPLOYEE +  '     = '''' OR ' + @RS_NAME_OF_THE_EMPLOYEE + '     IS NULL)                
             AND ( ' + @RS_CATEGORY_OF_THE_EMPLOYEE + '  = '''' OR ' + @RS_CATEGORY_OF_THE_EMPLOYEE + ' IS NULL)'               
                            
    
     SET @SQLString += 'ORDER BY ID) AS STARTING_ID                
           ON MAINTABLE.ID >= STARTING_ID.ID'    

	EXECUTE sp_executesql @SQLString


Что я уже пробовал:

я не догадывался, где он ошибается.

1 Ответов

Рейтинг:
0

OriginalGriff

Начните с использования SSMS, чтобы посмотреть, что именно вы пытаетесь выполнить, используя печать вместо выполнения

Предположим, что один из ваших параметров содержит символ кавычки, который испортит все ваше утверждение.

Вы действительно не хотите этого делать в любом случае - вы все еще оставляете себя широко открытыми для атаки SQL-инъекций, когда вы объединяете строки, даже внутри SQL. Передача ваших параметров как есть была бы намного безопаснее. Смотрите здесь пример: sql server - EXEC sp_executesql с несколькими параметрами - переполнение стека[^]