問題タブ [tsql]
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 / MS-SQL を使用して既存のテーブル セルに文字列を追加する最も簡単な方法は何ですか?
「ファイル名」列を持つテーブルがあります。最近、この列に挿入を実行しましたが、急いで、入力したすべてのファイル名にファイル拡張子を追加するのを忘れていました。幸いなことに、それらはすべて「.jpg」画像です。
これらの挿入されたフィールドの「ファイル名」列を簡単に更新して (既知の ID 値に基づいて最近の行を選択できると仮定して)、「.jpg」拡張子を含めるにはどうすればよいですか?
sql-server - 重複行を削除するにはどうすればよいですか?
かなり大きなSQL Server
テーブル (つまり 300,000 行以上) から重複行を削除する最良の方法は何ですか?
もちろん、RowID
identity フィールドが存在するため、行は完全な複製にはなりません。
マイテーブル
sql - テーブルへのアップサートを行うにはどうすればよいですか?
ジョブのリストを含むビューがあり、ジョブが誰に割り当てられているか、どの段階にいるかなどのデータが含まれています。各段階で各人が持っているジョブの数を返すストアド プロシージャを作成する必要があります。
これまでのところ、これがあります(簡略化):
それに関する問題は、行が結合されないことです。したがって、スタッフ メンバーがステージ 1 とステージ 2 にジョブを持っている場合、@ResultTable には 2 つの行があります。私が本当にやりたいのは、スタッフ メンバーの行が存在する場合は行を更新し、存在しない場合は新しい行を挿入することです。
誰かがこれを行う方法を知っていますか、または別のアプローチを提案できますか? カーソルを使用してユーザーのリストを反復処理することは本当に避けたいと思います (しかし、それは私の代替オプションです)。
SQL Server 2005 を使用しています。
編集: @Lee:残念ながら、InStage1 = 1 は単純化されたものでした。これは、WHERE DateStarted IS NOT NULL と DateFinished IS NULL に似ています。
編集: @BCS:最初にすべてのスタッフを挿入するというアイデアが気に入っているので、毎回更新するだけです。しかし、私はそれらの UPDATE ステートメントを正しくするのに苦労しています。
sql-server - トランザクションなしでトリガーしますか?
トランザクションに含まれないトリガーを作成することはできますか?
トリガーを使用してリンク サーバー上のデータを更新したいのですが、ファイアウォールの問題により、2 つのサーバー間で分散トランザクションを作成できません。
sql - TSQL で 2 つの日時が同じ暦日にあるかどうかを確認する良い方法は何ですか?
私が抱えている問題は次のとおりです。2 つの日付が同じ日であるかどうかを確認するために、where 句で日時を比較する必要がある大きなクエリがあります。私の現在の解決策は、日時をUDFに送信して同じ日の真夜中に変換し、それらの日付が等しいかどうかを確認することです。クエリ プランに関して言えば、結合または where 句のほとんどすべての UDF と同様に、これは惨事です。これは、関数を根こそぎにして、最適なインデックスを見つけるために実際に使用できるものをクエリ オプティマイザーに与えることができなかったアプリケーション内の唯一の場所の 1 つです。
この場合、関数コードをクエリにマージすることは非現実的です。
ここで単純なものが欠けていると思います。
参考までに機能はこちら。
問題を複雑にするために、タイムゾーンテーブルに参加して、日付を現地時間と比較しています。これは、行ごとに異なる可能性があります。
[編集]
@Todd の提案を取り入れています。
datediff がどのように機能するかについての私の誤解 (連続した年で同じ年が 366 になり、予想どおり 0 ではありません) により、多くの労力が無駄になりました。
しかし、クエリ プランは変更されませんでした。全体として、最初からやり直す必要があると思います。
sql-server - SQL Server:文字列データのPIVOTingの例
いくつかの簡単なSQLServerPIVOTの例を見つけようとしています。私が見つけた例のほとんどは、数を数えたり合計したりすることを含みます。文字列データをピボットしたいだけです。たとえば、次のクエリを返します。
(可能であれば)PIVOTを使用して、次のような結果を作成したいと思います。
これはPIVOT機能でも可能ですか?
sql-server-2005 - 別のデータベースからデータベースを作成しますか?
SQL Server 2005 で別のデータベースの複数のテーブルからデータベースを自動的に作成する方法はありますか? プロジェクトに取り組む必要があり、それをローカルで実行するために必要なのはいくつかのテーブルだけであり、50 ギガ DB のバックアップを作成したくありません。
アップデート
Management studio で Tasks -> Export Data を試しましたが、必要なテーブルを含む新しいサブ データベースが作成されましたが、テーブル メタデータはコピーされませんでした。つまり、PK/FK 制約も ID データもありません ( Preserve Identity がチェックされている場合)。
それが機能するためには明らかにこれらが必要なので、他の提案も受け付けています。そのデータベース公開ツールを試してみます。
Integration Services を利用できません。また、2 つの SQL Server が相互に直接接続できないため、それらは使用できません。
アップデートのアップデート
Database Publishing Tool は機能し、それが生成した SQL は少しバグがあったため、少し手で編集する必要がありました (存在しないトリガーを参照しようとしました)。
sql-server - TSQL 変数を定数にする方法はありますか?
TSQL 変数を定数にする方法はありますか?
sql - テーブルの最後の項目を取得する - SQL
基本的にプロセスを通じてアイテムを追跡する履歴テーブルが SQL Server にあります。アイテムには、プロセス全体で変更されない固定フィールドがいくつかありますが、プロセスのステップが増えるにつれて増加するステータスや Id などの他のいくつかのフィールドがあります。
基本的に、バッチ参照を指定して各アイテムの最後のステップを取得したいと考えています。だから私がするなら
バッチ内のすべてのアイテムのすべてのステップを返します-例
しかし、私が本当に欲しいのは:
編集: 謝罪 - TABLE タグを Markdown で動作させることができないようです - 手紙のヘルプに従い、プレビューで問題なく表示されます
sql - SQL Server: 過去 1 年間のデータのみを取得する
昨年のみのデータを取得する必要があるクエリを作成しています。これを行う最善の方法は何ですか?