問題タブ [table-variable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - T-SQLでデバッグ時にテーブル変数の値を確認する方法は?
デバッグ時に SQL Server Management Studio (SSMS) のテーブル値変数の値 (行とセル) を確認できますか? はいの場合、どのように?
sql-server - テーブル変数をコピーするT-SQL
テーブル変数のコピーを作成しようとしています。
これは私にエラーを与えています:
私は何を間違えましたか?
ありがとう、マーク
c++ - ODBC Execute/Fetch of SQL 2005 ストアド プロシージャの結果セットはテーブル @variable を使用できません
SQL Server 2005 (ネイティブ クライアント) に対して ODBC と C++ を使用しています。
定数値の 2 つの行を返す次の単純なテスト ストアド プロシージャがあります。
ODBC コードは次のようになります (簡略化)。
SQLExecDirect() 呼び出しは、次の情報を返します。
そして、SQLFetch() 呼び出しは次のようになります。
ODBC リファレンス ドキュメントによると、結果セットがありません。
そのため、代わりにストアド プロシージャを次のように変更します (たとえば、テーブル変数を使用しない)。
そして出来上がり、それは動作します。もちろん、これは単純なテスト プロシージャです。実行する必要がある実際の SQL はより複雑で、テーブル変数が必要です。それについて説明する必要はありません。しかし、最初の SP からの結果セットに対して (ODBC) カーソルを作成できないのはなぜでしょうか?
これを機能させる方法を知っている人はいますか?ところで、環境ハンドルで ODBC v3 をアサートしています。接続ハンドルでさまざまなカーソル属性を試しましたが、役に立ちませんでした。
助けていただければ幸いです。
sql - SQL エラー: 文字列またはバイナリ データが切り捨てられます
テーブル変数を取得しました@RQ
。テーブル値関数を使用して更新します。今、私は自分の機能が機能しているので、更新を間違っていると思います...
関数:
ここで、単純なクエリを実行すると:
エラーが発生しました:
メッセージ 8152、レベル 16、状態 13、行 20 文字列またはバイナリ データは切り捨てられます。ステートメントは終了されました。
なんで?それについて何をすべきか?
sql-server - SQLServerマルチステートメントUDF-一時的に必要なデータを保存する方法
かなり大きなテーブルで機能するいくつかの自己結合を使用した、比較的複雑なクエリがあります。したがって、そのクエリをより高速に実行するには、データのサブセットのみを操作する必要があります。上記のデータのサブセットは、渡されたパラメータに応じて12000〜120000行の範囲になります。
詳細については、こちらをご覧ください:自己結合で参照されるSQLServerCTEの速度が遅い
ご覧のとおり、以前はCTEを使用してデータサブセットを返していました。これにより、SQL Serverが1回実行してデータセットを再利用するのではなく、結合ごとにCTEでSelectステートメントを再実行するため、パフォーマンスの問題が発生しました。
別の方法として、一時テーブルを使用すると、はるかに高速に機能しました(UDF本体の外部にある別のウィンドウでクエリをテストしている間)。ただし、これをマルチステートメントUDFに実装しようとすると、SQL Serverから、マルチステートメントUDFが何らかの理由で一時テーブルをサポートしていないことを強く思い出しました...
UDFはテーブル変数を許可するので、それを試しましたが、CTEバージョンでは40秒しかかからなかったのに対し、クエリが完了するまでに1分40秒かかるため、パフォーマンスは非常にひどいものです。このスレッドにリストされている理由により、テーブル変数が遅いと思います。SQLServerストアドプロシージャへの挿入時にテーブル変数のパフォーマンスが低下する
一時テーブルのバージョンは約1秒かかりますが、SQL Serverの制限により関数にできず、テーブルを呼び出し元に戻す必要があります。
CTEとテーブル変数の両方が遅すぎて、一時テーブルがUDFで拒否されることを考えると、UDFを迅速に実行するためのオプションは何ですか?
よろしくお願いします。
sql-server - ストアドプロシージャでテーブル変数を使用するのではなく、単にテーブルまたはビューから選択するのではありませんか?
私は今、以下に示す動作に従っているように見えるsprocsを見ています。
プレーンなselectステートメントを使用してテーブル変数をスキップするのではなく、このアプローチを使用することには利点がありますか?
sql - テーブル変数が作成され、メモリまたはtempdbに保持されますか?
テーブル変数はメモリまたはtempdbに作成されていますか?短い一時テーブルについても同じですか?
sql-server - whileループ内のテーブル変数が毎回初期化されない:SQL Server
while ループ内のテーブル変数が他の変数のように動作しない理由を知りたいです。テーブル変数は一度だけ作成され、ループ全体で使用されます。ただし、ループが増加するたびに他の変数が初期化されます。
詳細については、以下のコードを確認してください
これはバグですか??
sql-server - T-SQLのテーブル変数にSELECTINTO
複雑なSELECTクエリを取得しました。このクエリから、すべての行をテーブル変数に挿入したいのですが、T-SQLでは許可されていません。
同じように、SELECTINTOまたはINSERTEXECクエリでテーブル変数を使用することはできません。 http://odetocode.com/Articles/365.aspx
簡単な例:
テーブル変数のデータは、後で別のテーブルに挿入/更新するために使用されます(ほとんどの場合、マイナーな更新を含む同じデータのコピー)。SELECT INTO
これの目標は、適切なテーブルに直接実行するよりも、スクリプトを少し読みやすく、簡単にカスタマイズできるようにすることです。rowcount
はかなり小さく、必要な場合にのみ手動で実行されるため、パフォーマンスは問題になりません。
...または私がそれをすべて間違っているかどうか教えてください。
sql-server-2008 - Access から SQL Server 2008 ストアド プロシージャを実行し、TABLE 変数を渡す
Access から SQL サーバーにテーブルを渡し、ストアド プロシージャを実行する必要があります。
これを行うために、Access でパススルー クエリを使用しています。
私のパススルークエリ:
私のストアドプロシージャ:
これは機能するはずですか?ストアド プロシージャで「TABLE 付近の構文が正しくありません」というエラーが発生します。