問題タブ [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-server - SQLサーバーでテーブル変数と一時テーブルをいつ使用する必要がありますか?
テーブル変数で詳細を学習しています。一時テーブルは常にディスク上にあり、テーブル変数はメモリ内にあると言われています。つまり、テーブル変数は一時テーブルよりも少ない IO 操作を使用するため、テーブル変数のパフォーマンスは一時テーブルよりも優れています。
ただし、テーブル変数にメモリに格納できないレコードが多すぎる場合、テーブル変数は一時テーブルのようにディスクに配置されることがあります。
しかし、「多すぎるレコード」が何であるかはわかりません。100,000 レコード? または1000,000レコード?使用しているテーブル変数がメモリ内にあるかディスク上にあるかを確認するにはどうすればよいですか? SQL Server 2005 には、テーブル変数のスケールを測定したり、テーブル変数がメモリからディスクに配置されたときに通知したりする機能やツールはありますか?
tsql - TSQL はテーブル変数の列値を設定します
次のように、テーブル変数の個々の列を繰り返し設定しようとしています。
配列のようなテーブル変数にアクセスできないため、上記は機能しません。次の機能を取得するにはどうすればよいですか?
sql-server - 大文字と小文字を区別する列を持つT-SQLテーブル変数-SQL_Latin1_General_CP1_CS_ASを照合します
テーブル変数列の定義にSQL_Latin1_General_CP1_CS_ASを照合することは可能ですか?
これを実行したい理由は、ソーステーブルに大文字と小文字を区別する情報がありますが、それをテーブル変数に挿入すると、主キーに問題があります(クラスター化されています)-重複した値が検出されます-「すべて」のようにおよび「ALL」。
そのため、次のステートメントのように、テーブル変数の列で大文字と小文字を区別する方法を見つけようとしています。
私に与える: "SQL_Latin1_General_CP1_CI_AS"
.net - テーブル値パラメーター: 小さなチャンクでデータを送信する
csv ファイルから読み取り、データをテーブル変数としてストアド プロシージャに送信しています。これまでにテストした結果、3 分 30 秒で 30 万件のレコードを処理できました。ファイルには、何百万ものレコードが含まれている可能性があります。これらすべてのレコードを一度にストアド プロシージャに送信するのが良い考えなのか、それとも 500k のバッチで送信する必要があるのか を知りたかったのです。コマンドのタイムアウトを 1800 に設定しました。
sql - TSQLテーブル変数の初期化
次のTSQLテーブル変数があります。
毎月の日数をすばやく調べたいだけです。このテーブルをC配列のように初期化するにはどうすればよいですか?
sql-server - システムストアドプロシージャとテーブルパラメータ
私はこれを行うことに慣れています:
しかし今、私はマスターでprocを作成し、他のデータベースでそれを使用したいと思います:
...正常に構築されますが、使用できません。
収量:
メッセージ2715、レベル16、状態3、行1列、パラメーター、または変数#1:データ型table_listが見つかりません。パラメータまたは変数'@ls'のデータ型が無効です。
そこで、同義語を作成してみました。これは、作成中に文句を言うことはありませんが、役に立ちません。
誰か考えますか?
sql-server-2008 - SQL Server 2008 でのテーブル変数の自己参照
SQL サーバーで非常に奇妙なものを見つけました。それが正常かどうかはわかりません。
常に 0 行が挿入されたと表示されます。@table の代わりに物理テーブルを使用すると、問題なく動作します。
クエリに何か見落としがありますか?
sql - テーブル変数 MS SQL から削除
ストアド プロシージャのループごとにテーブル変数から行を 1 つずつ削除しようとしていますが、ループし続けてレコードを削除できない場合があります。値を PRINT しようとしても、レコードはそこにあります。私の削除ステートメントが実行されたときに、エラーは発生しません。
ループが終了しない原因となっているテーブル変数の削除が遅れているインスタンスはありますか?
これが私のコードです:
これは、The Values を印刷して得たものです。
その後、スクリプトは 10406 でループします。
注: スクリプトのこの部分の前に、@temp_table を他のプロセスに既に使用しているため、rid 値が 10400 以上になりました。
tsql - SQLサーバーは、テーブル変数とdbテーブルの結合から選択して多くの列を更新します
私は古典的な人物 - >人物属性スキームを持っています。したがって、次のようになります: person(PK) <- person_attribute(FK)
私が必要としているのは、人物が属性と結合されている 1 つの行を取得するクエリです。たとえば、次のように変換します。
に:
さらに悪いことに、私の人物はテーブル変数にあります。
だから、私は(person_idのパラメータを持つspで)持っています:
もちろん、何らかの理由で機能しません。結合された 2 つのテーブルに対してクエリを実行し、「pa.attribute_value where pa.attribute_type_id = 'someval'」を選択すると、正しい値が得られます。しかし、更新は機能しません。
もちろん、これを 3 つの更新として書くこともできますが、1 つの結合を行ってから update 句でフィルター処理する方が高速になると考えています。
また、私の属性は、属性テーブルだけでなく、3 つのテーブルに分散していることにも注意してください。だから、これが私がテーブル変数を持っている理由です。
どんな助けでも大歓迎です。多分私はこれについて間違った方法で進んでいます。パフォーマンスが重要です。これを達成するための最もパフォーマンスの高い方法は何ですか?
どうもありがとうございました。