2011-09-16 9 views
2

動的SQLを使用していますが、長いSQLクエリを実行する必要があります。まず、@varをnvarchar(4000)というクエリで宣言しますが、クエリは4000文字より長くなります。 nvarchar(8000)に変更しようとしましたが、4000文字を超えることができない例外が発生します。sp_executeSQLとStatment(2000文字以上)

最後にvarをvarchar(8000)と宣言しますが、エラーは発生しませんが、exe sp_executeSQLに行くとき sp_executeSQLはntext/nchar/nvarcharを必要とします。

私はsp_executeSQLを使用してより長いSqlクエリを実行できますか? Thnks!

は、私は、SQL Server Expressは2005

答えて

4

あなたが2005年にあるとして、あなたは最大10億個の文字にdeclare @var nvarchar(max)を使用することができます使用しています。

は、あなたが切り捨てられていない内容を表示するには

SELECT @var AS [processing-instruction(x)] FOR XML PATH('') 

を行うことができますので、非常に長い文字列の変数の内容を表示するために動作しませんPRINTステートメントを使用しています。

+1

これは、動的SQLをデバッグするための答えです!どうもありがとうございます。同様のXMLアプローチを使用した別の回答が見つかりましたが、出力がエンコードされています(例: "<>"は "lt; gt;"と表示されます)。あなたのアプローチはそのような問題を抱えておらず、私は動的なコードを改行で表示できます(長い行に混乱するのではなく)。 – MikeTeeVee

関連する問題