私は非常に長い動的SQL文(13000文字以上)を使用していますが、実行しようとしているときにexecが文を完全に読んでいないことに気づいています最後の部分をオフにします。動的SQL文が長すぎます
私が使用しています:
DECLARE @Statement nvarchar(max)
SET @Statement = N'[LONG STATEMENT]'
EXEC (@Statement)
は私がEXEC (@Statement)
にブラケットを使用していない場合には、さらに少ない文字を読むことができることを、予告をした私もそれはちょうど停止しEXEC sp_executesql @Statement
を使用してみました12482文字後のステートメントを読む... SQL Server 2008 R2とSQL Server 2014に問題があります
EDIT:今、私は別の何かに気づいた。声明の長さ自体はまさに問題ではないようです。私は、新しいストアドプロシージャを追加する更新スクリプトを作成しているので、このプロシージャ内でテーブル名を使用していますので、この長い動的SQL文を使用しています。そこで、テーブル名を含む変数を作成し、動的SQL文でこれらの変数を使用したので、この更新スクリプトで追加するプロシージャや関数内でテーブル名を変更する必要はありません。変数。 しかし、これらの変数を使用せず、ステートメントでテーブル名が「ハードコード」されていれば、ステートメントは正常に実行できます...
は恐ろしいですね。どのような動的SQLを使用する理由は何ですか?あなたはそのステートメントをより小さなステートメントに分割することはできませんか? – Tanner
制限は約2GBなので、これは問題ではありません。どのように切り捨て点を決定していますか? SSMSの結果ビューには、表示される最大データとして設定可能な制限があることに注意してください。 –
* "私は、エグゼクティブがステートメントを完全に読んでいないことに気づき、最後の部分を切り捨てる" * * –