次の例では、BEGIN ステートメントの後に印刷を配置しようとしても機能しません。BEGIN-END ステートメント内のすべてを削除して印刷を配置すると、機能します。
SET @SQL = 'IF (((SELECT fldLT FROM #zArray) = ''p'') OR ((SELECT fldMF FROM #zArray) <> -1))
BEGIN
SET @X = '+@Z+' * ((SELECT fldLF FROM #zArray) / 100))
IF (CAST((SELECT fldMF FROM #zArray) AS FLOAT) > '+@X+')
BEGIN
SET @X = (CAST((SELECT fldMF FROM #zArray) AS FLOAT))
END
END'
EXEC sp_executesql @SQL, N'@X NVARCHAR(50),@Z NVARCHAR(50)', @X, @Z
print ステートメントが機能しない原因となる次のコードに何か問題がありますか?
'SET @X = '+@Z+' * ((SELECT fldLF FROM #zArray) / 100))
IF (CAST((SELECT fldMF FROM #zArray) AS FLOAT) > '+@X+')
BEGIN
SET @X = (CAST((SELECT fldMF FROM #zArray) AS FLOAT))
END'