По какой-то причине я не могу получить значение динамически из SQL.
declare @SQL nvarchar(max)
declare @FieldName nvarchar(255)
declare @FieldValue nvarchar(max)
select @SQL = 'SELECT TOP 1 ' + @fieldname
+' FROM MyTable WHERE CM_CASE_YEAR = ' + LEFT(@ClaimNumber, 2)
+' AND CM_CASE_NUMBER = ' + RIGHT(@ClaimNumber, 6)
exec sp_executesql @sql, @FieldValue OUTPUT
select @FieldName + ' - ' + @FieldValue
Когда я запускаю запрос @SQL
в другом окне, он отображает один столбец с одним значением.
Но, к сожалению, когда я пытаюсь это сделать, @FieldValue всегда возвращается NULL.
Я что-то упустил в тот день, когда они учили sp_executesql? Очевидно! Но что?