Вы объявили @col
переменную как int
, но вы пытаетесь установить 'UserId'
текст. Это, очевидно, не может произойти.
Задать имя столбца (UserId
) при создании динамического запроса:
set @sql = 'Select @max = MAX(UserId) From CustomerTbl Where Gender=@gender'
Если вы получили имя столбца во время выполнения, измените тип переменной @col
на nvarchar(128)
и не используйте параметр, а объедините его:
set @sql = 'Select @max = MAX(' + @col + ') From CustomerTbl Where Gender=@gender'