だから、私はT-SQLでかなり厄介な問題に遭遇しました...基本的に、テーブルにはいくつかのT-SQLステートメントがあります。これらの行を効率的に取得し、それらを変数に連結するストアド プロシージャが必要です。次に、連結された行をEXEC(@TSQL)で実行します
問題は、Exec を呼び出すときに、改行を含む文字列の連結が取り除かれているように見えることです...
たとえば、次のようなものです。
declare @sql nvarchar(max) = ''
select @sql += char(13) + char(10) + [sql] from [SqlTable]
exec(@sql) -- Won't always do the right thing
print @sql -- Looks good
Cursor でコードをブッチャーしたくありません。これを回避する方法はありますか? ありがとう!
編集:さて、問題は実際にはGOステートメントのみにあるようです。たとえば、次のようになります。
declare @test nvarchar(max) = 'create table #test4(i int) ' + char(10) + char(13) + 'GO' + char(10) + char(13) +'create table #test5(i int)'
exec(@test)
これは行かなければならないと思います(しゃれは意図されていません)私は、特別なケースが全体を爆破することを恐れて、それを試して解析する必要が本当にありたくなかったのです。