2011-01-31 8 views
3

1つのsqlコマンドに10000を超えるパラメータを追加したいとします。どのように可能ですか? 私は2100のパラメータを1つのsqlコマンドで知っています。1つのsqlコマンドに10000を超えるパラメータを追加する方法

+8

SQLコマンドに10000を超えるパラメータを追加する必要はありません。 –

+1

http://msdn.microsoft.com/en-us/library/ms143432.aspxと検索パラメータのキーワード: –

+2

私たちはHTFに乗ってHelltownに直進しました。いいえ、本当に、なぜですか?おそらく、10kパラメータを使用するよりも優れた解決策がありますか? – SWeko

答えて

13

「方法」に右にジャンプするのではなく、「なぜ」に戻ると思います。おそらくあなたはいくつかの巨大な挿入/更新を行っているように思えます。この場合、より適切なソリューションはテーブル値のパラメータになります。

その他のオプションが含まれます:

  • XMLを渡すと、ステージング表にSqlBulkCopyのようなもので最初
  • データをロードする(それが、この時はかなり良いです)XMLを解析するためにSQL Serverを使用して、ステージングテーブルからトランザクションテーブルにデータをプッシュするコマンド(raw TSQLまたはSPROC)を実行します。
  • IDのリストのみの場合は、サーバーに「分割」関数(udf)を書き込み、渡しますa [n]varchar(max)
  • 操作をいくつかのより正常なコマンドにバッチ

実際には1つのコマンドで10kパラメータで何かしたくないです。そういうわけで、狂気は嘘です。

+11

2101でShub-SQLurathが呼び出され、データバスセミコロンで予言されているように、暗闇が地球を掘り起こすため、制限は2100です。 – SWeko

+0

私は10000個のオブジェクトから挿入クエリと10000パラメータを生成しています。このクエリを1つのコマンドで実行したいのですが、データベースへの1回のラウンドトリップでこのクエリを実行する方法はありますか? –

+1

@Engr - いいえ、それは単にそれを行う方法ではありません。それを複数のコマンドに分割するか、上記のトリックを使用してください。挿入の場合、テーブル値のパラメータはこのシナリオでは**かなり** **設計されています。なぜそれらを使用しないのですか? –

3

できません。 SQL Serverは最大2100のパラメータをサポートしています。

唯一のオプションは、これらのパラメータ値をすべて含むSQL文字列を生成することです。

なお、SQL CEにはこの制限はありません。

関連する問題