問題タブ [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.

0 投票する
1 に答える
287 参照

c# - SQL Server IF..ELSE が Windows アプリケーションに表示されない

私はこのストアドプロシージャを持っています:

どちらがIF..ELSE異なることを実行する必要があるかは、指定されたコードによって異なります。

SSMS でコードを実行したところ、完全に機能しました。しかし、C# Windows アプリケーションでコードを使用しようとすると、値が得られません..どうしてそれが可能なのでしょうか? 何か見逃しましたか?

このストアド プロシージャのみがテーブル値を返さなかった....

一時テーブル、テーブル変数を使用してみましたが、それでもテーブル値が返されませんでした...

これはC#コードです:

これは、C# から SQL Server への接続プログラムの一部です。

  • すべてのテーブルは SMSS で値を返します。
  • すべてのテーブル変数は SMSS で結果を表示します。
  • 結果は、ADOAdapter を使用する C# Windows アプリケーションでは表示されませんでした。
  • 一時テーブルとテーブル変数を使用してみましたが、うまくいきませんでした。
  • を使用しないでみIF..ELSEましたが、うまくいきませんでした。
0 投票する
1 に答える
75 参照

sql-server - while 句のパフォーマンスの問題

では皆さん、

長文をあらかじめお詫び申し上げます。これは実際にはちょっと楽しいです。

私は SQL スクリプトを作成しましたが、それは非常に賢いと思ったので、昨日は半ば誇りに思っていました。パフォーマンスの問題で台無しになることが判明し、そのためにテストすることさえできないので、ため息をつくと思うことさえしていない可能性があります。

この問題は、次の例で最もよく説明されています。

列 A | 列 B | C列 | D列

このテーブルでは、次のことを行う必要があります。1.最初の行から始めて、列 A の値が一致する場合は、それに続くデータで行を更新します。2.一致した場合は、更新後に 2 番目の行を削除します。3.次に進みます。一致しなかった場合は次の行に進み、同じプロセスを再実行します。

一致する場合は、以下に基づいて上位の行が更新されます。

  1. A列:なし
  2. 列 B: 両方の値が同じ場合は一方の値のまま、そうでない場合は「複数」と記入
  3. 列 C: 2 つの間の早い方の日付を保持し、
  4. 列 D: 2 つの間の後の日付を保持し、

次に、下の行を削除します。

私の例は次のようになります。

列 A | 列 B | C列 | D列

これをすべて行うために、2 つのテーブル変数を作成し、両方に同じデータを挿入し、2 番目 (@ScheduleB) を循環して一致を探し、最初のテーブル (@ScheduleA) の行を更新します。次に、@A の行の下の行を削除しました (B と同じであるため)。最後に、一致するものがない場合、@A の次の行に移動してプロセスを最初からやり直しました。少なくとも、それがコードの本来の目的です。以下を参照してください。

問題は、パフォーマンスがひどいことです。Cursor の使用を検討しましたが、パフォーマンスが役立つかどうかはわかりません。

助言がありますか?

編集: 明確にするために、列 B は整数列ではありません。カードは非常に簡単に理解できるため、これを例として使用しただけです。それ以来、K を含めるようにコラムを更新しました。

0 投票する
4 に答える
22024 参照

debugging - MS SQL Management Studio 2012 でデバッグ セッション中にテーブル変数のデータを表示する方法は?

SSMS 2012 を使用して複雑な T-SQL スクリプトをデバッグしたいと考えています。

スクリプトをデバッグ モードで実行し、ブレークポイントを配置したり、スクリプトをステップ実行したりできますが、テーブル変数に格納されている値を確認できません。

Localsウィンドウにはこれらすべての変数が表示されますが、それらの値は次のように表示されます(table)

地元の窓口

コンテキスト メニューや変数をクリックして、変数の内容を表示する方法はありません。

を使用してテーブル変数に対してクエリを実行しようとしましたImmediate Windowが、これも機能しないようです。

イミディエイト ウィンドウ

デバッグセッションでテーブル変数から値を取得する方法はありますか?

0 投票する
8 に答える
167804 参照

sql-server - テーブル変数エラー: スカラー変数 "@temp" を宣言する必要があります

私は達成しようとしています:

しかし、次のエラーが発生します。

スカラー変数「@temp」を宣言する必要があります。

私は何を間違っていますか?

0 投票する
1 に答える
169 参照

sql - SQL Server でコレクションをパラメータとして渡すときに IN 句を使用する

クエリは O/p を与える

商品サイズNM

(列名)

「U」、「V」、「X」、「Y」

しかし、これをコードのINクエリへの入力として使用したとき、私はそれを行いました。同じ結果セットは得られません。どうしてこうなるのか…?テーブル MstItemSize には適切なデータがあります。

  1. INSERT INTO @tblRingSize SELECT アイテム FROM dbo.SplitStrings_CTE (@ringSize, ',');

  2. SizeTypeNm ='Ring' の MstItemSize から ItemSizeNm を選択し

    --('U','V','X','Y')で ItemSizeNm を選択します。

    ( select Replace ( (select STUFF( (select ''',''' + ringSize from @tblRingSize For XML PATH('')),1,2,'') +'''' ) ,' ','' )))

  3. select Replace ( (select STUFF( (select ''',''' + ringSize from @tblRingSize For XML PATH('')),1,2,'') +'''' ) ,' ','')