問題タブ [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 - 複数のSQLクエリを実行するために値のリストを変数として保存する方法は?
WHERE 句のステートメントを呼び出し可能な変数として格納する方法はありますか?
異なる「日付」と「ID」の値を使用して、以下のクエリを約 20 回実行する必要がありますが、「コード」の値は同じままです。ただし、20 回のクエリの後、「コード」の値を別の値のセットに変更し、同じ 20 個の「日付」と「ID」の組み合わせを使用する必要があります。
SQL Server Management Studio 2012 を使用しています。
編集:これは実際には、結果として得られるレコードの数をカウントするためのサブクエリです。各カウント クエリは追加のカウント クエリに結合されるため、すべてのクエリを一度に実行し、結果にカウントを含む 1 つの列を表示できます。各列が「コード」セットに固有の結果を含む Excel テーブルを作成する方法を知りたいのですが、まだ調べていません。
コードの値がどのように変化するか:
他に 2 つの Code リストがあり、合計 5 つあり、BETWEEN、IN、および = ステートメントを含みます。役立つ場合はこれらも投稿できますが、上記と同じ宣言方法に従っています。
日付の値は、暦年または四半期のいずれかです。ID 値は、IN、NOT IN、または = のいずれかで指定されます。それらはすべて char、varchar、tinyint、または date です。
別の方法:コードを何度もコピー アンド ペーストして置き換えることもできますが、コーディング能力を向上させたいと考えています。また、検索と置換は単一行のみを読み取ります。WHERE 句など、複数の行に対して機能させることができません。正規表現について聞いたことがありますが、それらを使用して目的を実行する方法がわかりません。
助けてくれてありがとう!
sql - SQL テーブル変数 - 一致する行セットの存在をチェックする制約の追加
pmbAustin の提案による更新
pmbオースティン、ありがとう。それはうまくいくと思います。0 または 1 を返す関数「dbo.CK_WinteamSportExists」を作成しました。ただし、不可解なエラー メッセージが表示されます。ソリューションをテストしたところ、次の結果が得られました。
エラー メッセージ: メッセージ 4121、レベル 16、状態 1、行 1 列 "dbo"、ユーザー定義関数または集計 "dbo.CK_WinteamSportExists" が見つからないか、名前があいまいです。
完全修飾名「mydatabase.dbo.CK_WinteamSportExists」を使用してみましたが、サイコロはありません。
チェックで構文が間違っているようですが、私の人生ではエラーを見つけることができません。
元の質問
テーブル変数に参照整合性を適用しようとしています。SQL Server 2012 で作業しています。
@GameID_Table の WinTeamID/SportID と LoseTeamID/SportID の組み合わせは、次のように定義された別のテーブル Link_TeamSport に一致する行が存在することによって制約される必要があります。
通常、複合外部キーを使用してこれを行いますが、これらはテーブル変数では許可されていません。
また、Link_TeamSport で一致する行の存在をチェックするユーザー定義関数を作成しようとしましたが、UDF はテーブル変数でも許可されていません。
これは、私の制約条件を示す作業コードの例です。以下のコードは、一致する行が見つかった場合は 1 の結果を返し、そうでない場合は 0 を返します。ただし、この概念を @GameID_Table 内のチェック制約に組み込む方法がわかりません。
sql - T-SQL: 柔軟な構造を持つ一時テーブル/テーブル変数の作成
SQL ベースのレポート プロジェクトに取り組んでいますが、DB へのアクセスが制限されています。SELECT クエリを作成し、取得したデータを一時テーブル/テーブル変数に挿入することしかできません。ストアド プロシージャやその他の関数を作成/実行できません。
私が実行しているクエリは、すべてのエンジニアと彼らが持っているさまざまな主要なスキルをプールして、後で各エンジニアが持っているスキルや特定のスキルに該当するエンジニアを確認できるようにするためのものです。
この目的のために、同じクエリで以前に取得した値に基づく構造である、柔軟な構造を持つテーブル変数/一時テーブルを作成しようとしています。
例えば
最初のアウトプット: アダム・ブラッド・フリオ・マルティネス
2 番目の出力 (空白で区切られたスキル): VOIP TTS DBA Exchange Server
1 番目の出力を行として使用し、2 番目の出力を列として使用する、またはその逆の一時テーブル/テーブル変数を作成します。次に、メイン DB のさまざまな値に従って、この新しいテーブルにデータを入力します。
これを行う方法をアドバイスするか、この問題に対する他の解決策を提供してください。ありがとうございました
sql - SQL のクエリのテーブル値パラメーターにアクセスできません
1 つのストアド プロシージャに 2 つのクエリがあります。1 つのテーブル テーブル値パラメーターと、両方のクエリに使用しているその TVP があります。クエリの 1 つが正常に動作しています (更新クエリは正常に動作しています) が、挿入クエリに同じ TVP を使用している場合、値が挿入されません。何が起こっているのかわかりません。また、エラーも発生しません。
これが私のクエリです:
私のテーブルは次のようになります
挿入クエリに指定したパラメーターのシーケンスを変更したいですか。これについてあなたの提案をしてください
sql-server-2005 - 倉庫内の一時テーブルとして使用されている物理テーブル。何か利点はありますか?
以前の投稿で述べたように、私は SQL Server フレームワークに基づくウェアハウスを継承しました。
既存のコンポーネントと前任者によって採用されたプラクティスを継続的に見直していると、注意を引き、驚いたことがわかりました。大量のデータを操作するためのテンポラル テーブルとして物理テーブルが使用されている場所がいくつかあります。最初の反応は、この方法は DBMS にとって非常にコストがかかるということでしたが、それについてもっとフィードバックが欲しいというものでした。
このトピックに関するいくつかの注釈:
- SP内で作成/削除される物理テーブル(「TMP_TableName」と呼ばれるテーブル)
- 大量のデータを操作するために主に使用されるテーブル
- 言及されたSPは、毎日の夜間処理中に数回電話をかけました
質問:
- このプラクティスは、私が認識していない処理ルーチンに何らかの利点をもたらしますか?
- これに関するベストプラクティスはありますか?
- 私の計画は、パフォーマンスを改善するために #temp テーブルを使用するようにコードを更新することです。それについてのコメント?.
- 変数テーブルの使用を検討する必要がありますか? ビッグデータを扱うとパフォーマンスが悪いと読みました。
すべてのstackoverflowersと共有したい知識/経験に基づくフィードバックをお待ちしております。
前もって感謝します、
sql - 読み取り専用アクセス権を持つ SQL 仮想テーブル: 挿入、削除、更新?
2 つの質問:
- データベースへの読み取り専用アクセス権を持つユーザーを使用して、仮想テーブルを作成できますか?
元:
- データベースへの読み取り専用アクセス権を持つユーザーを使用して作成した仮想 SQL テーブルからデータを挿入、削除、および更新できますか?
元:
sql-server - 予約語のリストから列のテキストを置き換えます
クエリ結果から置き換えたい単語のリストを含むテーブル変数があります。
600
テーブル変数でこれらの単語のいずれかを検索したいと思います。この例のためだけに 3 を実行しました。そして、単語が見つかったら置き換えたいと思います。結果は戻ってきますが、単語ごとに重複しています。会社名の各単語を取得し、一致するかどうかを確認する UDF があります。
これは戻ってきます...
結果を 1 つだけ返してもらいたいのですが、「LLC」と「Inc」の両方が削除されます。これらの単語は予約語テーブル変数にあるためです。文字列「Sony LLC Inc」
だろう...