スニペットにはいくつかのエラーがあります。まず、変数を数値として使用するつもりなのに、変数を varchar(10) として宣言しています。これらは、smallint、int、または bigint として宣言する必要があります。
次に、これらの varchar 変数を使用して文字列を作成し、数値 1 を追加して @inCount に格納されている値に 1 を追加しようとしています。
変数は数値ではなく文字列であるため、+ 記号はそれらを連結しようとします。
エラーを理解するには、まず、数値 1 を文字列に変換し、EXEC を次のように記述します。
exec ('SET ' + @intCount + ' = ' + @intCount + '1')
それが完了したら、EXEC を削除し、連結する文字列を新しい文字列変数に割り当てます。そう:
DECLARE @composedQuery varchar(1000)
SET @composedQuery = 'SET ' + @intCount + ' = ' + @intCount + '1'
SELECT @composedQuery
次のような結果が表示されます。
SET 5 = 51
確かに、これはEXECで実行しようとしているものではありませんよね? :)
正しい解決策は、他の回答で提供されています。スニペット全体を次のように書き直します。
declare @intCount int
declare @intConst int
set @intCount = 5
set @intConst = 1
SET @intCount = @intCount + 1
--OR
SET @intCount = @intCount + @intConst