Red de conocimiento informático - Material del sitio web - Respuestas sobre cómo admitir consultas parametrizadas SQL empalmadas dinámicamente

Respuestas sobre cómo admitir consultas parametrizadas SQL empalmadas dinámicamente

remarkvarchar(100))go--Escribe algunos datos de prueba insertintooswica_test_table_1select1,

'oswica',''insertintooswica_test_table_1select2,

'stone','' insertintooswica_test_table_1select3 ,

'nana',''insertintooswica_test_table_1select4,

'nana',''go--Crear un procedimiento almacenado createprocoswica_proc_querytestdata(@whereSqlnvarchar(max),

@paramNameListnvarchar(max),

@paramValueListnvarchar(max))asbegindeclare@exesqlnvarchar(max)

--Generar declaración de consulta set@exesql='EXECsp_executesqlN'

'select*fromoswica_test_table_1'

+@whereSql+''

',N'''+@paramNameList+''

','

+@paramValueList+''

print@exesqlexec(@exesql)endgo--ejecuta el procedimiento almacenado execoswica_proc_querytestdataN

'whereid=@idandname=@name',N< / p>

'@idint,@namevarchar(50)',N

'@id=1,@name=''oswica'''go--result

--EXECsp_executesqlN'select*fromoswica_test_table_1whereid=@idandname=@nombre',N'@idint,@namevarchar(50)',@id=1,@nombre='oswica'

--idnameremark

-------------------------------------------- ---- ---------------------------------------------- ---- ---------------------------------------------- ---- ------------------1oswica--Explicación

--De hecho, no recomendamos usarlo directamente en el procedimiento almacenado. Porque todavía hay situaciones en las que SQL está empalmado en el código de ejecución.

--La mejor manera es empalmarlo dinámicamente en el código del programa y luego usar el método de parámetro para pasar dinámicamente los parámetros de acuerdo con el número real de parámetros.

-- La implementación es compatible. Las consultas parametrizadas también pueden concatenar cadenas. ----Sugerencia

--De acuerdo con la declaración anterior, podemos unir el siguiente sql:

--select*fromoswica_test_table_1whereid=@idandname=@name

--Luego use los parámetros de SqlCommand para agregar dinámicamente 2 parámetros de acuerdo con la cantidad de parámetros empalmados: @id y @name para lograr el

-- propósito.

Es relativamente fácil agregar parámetros dinámicamente en un lenguaje de programación o implementar el procedimiento almacenado CLR de SQLServer

para lograr este objetivo.