Setidaknya satu masalah:Anda harus mengapit nilai string Anda dengan tanda kutip tunggal, dan untuk menghindari tanda kutip di dalam string, Anda perlu menggandakannya:
WHERE ' + @pi_colName + ' = ''' + @pi_colValue + ''' AND ...
Anda juga mungkin ingin mendeklarasikan variabel @sql Anda sebagai sesuatu yang lebih besar dari 100 karakter! Sepertinya string Anda terpotong.
Jika kemungkinan nilai untuk @pi_colName terbatas, tipe data selalu string, dan kolomnya kompatibel dengan susunan, Anda dapat melakukan sesuatu seperti ini dan menghindari SQL dinamis:
SELECT ...
WHERE CASE @pi_colName
WHEN 'col1' THEN col1
WHEN 'col2' THEN col2
END = @pi_ColValue;