SQL Server Management Studioの結果グリッドのデータを編集する方法


94

結果グリッドでクエリ出力を取得したら、いくつかの行の値を編集したいと思います。テーブルを右クリックし、「テーブルを開く」と言って編集可能なテーブル出力を取得できることは事実ですが、必要なのは編集可能なクエリ出力、条件に一致する特定の行のみであり、結果グリッドでそれらを編集します。

これはMicrosoft SQL Server Management Studio Express内で可能ですか?


1
stackoverflow.com/questions/1535469/…で重複としてマークしますか?また、完全に機能するソリューションもあります
Brad

3
@Brad-リンクされた質問への回答は、単一のテーブルを使用している場合、つまり結合がない場合にのみ機能します。2つまたは3つのテーブルの結合を開始すると、これを実行できなくなります。他の解決策があれば興味深いでしょう。
フランシスロジャース

2
結合されたテーブルを編集する代わりの方法については、以下の@Yves A Martinの回答を参照してください。
jaredbaszler

回答:


86

あなたが望むものに似た何かをすることができます。テーブルを右クリックし、[SQL Server 2008を使用している場合は[上位200行を編集])またはSQL Server 2005で[テーブルを開く]を選択します。そこに到達すると、上部に[SQL]と書かれたボタンがあります。クリックすると、SQLステートメントを記述でき、変更するセルをクリックすると、その結果を編集できます。


1
これは2019年、最新バージョンはSSMS 2017ですが、グリッドセルの編集には同じアプローチを使用する必要があります!こんな悪いUIデザイン!
S.Serpooshan

78

はい、可能です。テーブルを右クリックし、Edit Top 200 Rows下の画像に示すようにクリックします

ここに画像の説明を入力してください

次に、結果グリッド内の任意の場所をクリックして、SQLアイコン「SQLペインの表示」を有効にします。これにより、編集することを選択したテーブルのSQLエディターが開きます。ここで独自のSQLクエリを記述し、クエリの結果セットを直接編集できます。

ここに画像の説明を入力してください


25

これを行う方法は次のとおりです。

  • 選択クエリをビューに変換する
  • ビューを右クリックして選択しますEdit All Rows (値が異なるテーブルからのものであっても、編集可能な値のグリッドが表示されます)。

ビューに挿入/更新トリガーを追加して、ビューフィールドから値を取得し、T-SQLを使用して複数のテーブルの更新を管理することもできます。


1
+1-これは、結合されたテーブルを編集するための最良かつ最も簡単な方法です。これはこのタスクを達成するにはあまりにも多くの作業ですが、それが私がそれを行うために見つけることができる唯一の方法です。
jaredbaszler、2015年

JOINEDテーブルは編集できません。非JOIN SQLステートメントのみ。JOINを実行すると、すべてのセルが編集できなくなります。
チャールズロバートソン

20

SSMS-編集200の結果を右クリック| オプション| ペイン| SQL-ステートメントを編集します。


SSMS 2014、「オプション」ステップをスキップします。
Denise Skidmore

17

いいえ。結果グリッドを編集する方法はありません。結果グリッドは主に、実行したクエリの目的を表示するためのものです。

これは、誰でも複雑なクエリを実行できるためです。うまくいけば、次のリリースでは、この種の機能が含まれる予定です。

あなたの質問にお答えしたいと思います。


6
なぜ人々があなたの回答に反対票を投じたのかわかりません。その実際には正しい。クエリで結合を使用すると、これまでの回答で提案されている方法を使用して結果を編集することはできません。私からの+1。
フランシスロジャース

クエリを編集グリッドのSQLペインにコピーできます。これは、他の回答が示唆するものです。
Denise Skidmore

17

与えられた答えはまだ有効です。SSMS(SQL Server 2016)は変更されていません。

「上位200行の編集」を行った後、条件ペインを使用することもできます。

上位200のコンテキストメニューの編集

  1. 基準ペインを表示
  2. 基準を入力してください
  3. 結果グリッドで直接データを編集する

基準ペインを開く

さらに、これらのコマンドの行数は、SSMSオプションでカスタマイズできます。

ここに画像の説明を入力してください


10

UPDATEは、
あなたが正解見ることができるように学習の答えを、でSQLサーバー管理2014は、あなたがすることができます
「に1.click の編集トップ200行
と、その後
に2.clicking「SQL表示ペイン(CTRL + 3)

3 TOPを削除します( 200)選択クエリから


選択クエリの結果を編集する方法がないシェンランスの回答を参照してください。その他の回答は、通常の選択と200レコードのみです。


5

はい、結合した結果を編集できます。(少なくともSSMS 2008 R2では)結合を使用するビューで結果値のいずれかを編集した後、クエリを再度実行して結果を更新する必要があります。

また、SSMSが「すべての行の編集」を許可するように構成されていることを確認する必要があります。オプション| SQL Serverオブジェクトエクスプローラー| コマンド...テーブルとビューのオプションを展開...「上位n行の編集コマンド」の値に0の値を入力...選択に対してもこれを実行できます。

イヴ・ア・マーティンの反応は100%正しいです!

ロブ


5

「上位200行の編集」を選択し、グリッド編集領域でCtrl + 3を押して(または「SQLペインの表示」をクリックして)、クエリを編集します...

ただし、これは「結合」を含まないクエリに対してのみ機能することに注意してください。


4

まず、ストーリーを右クリックして[すべての行を編集]を選択し、[クエリデザイナ->ペイン-> SQL]を選択します。その後、グリッドでクエリ出力を編集できます。


3

SQLデータベースでセル内編集を頻繁に実行する必要がある場合は、HeidiSQLは扱いが簡単で、使用が簡単ではなく、無料/オープンソース(寄付は受け入れられます)です。

もともとはMySQL用に作成されたもので、SQL Serverを処理できるようになり、実験的な(2014年8月現在)PostgreSQLもサポートしています。


3

結合がある場合、または複数のdBを使用している場合は、マスターを使用して、対象のdB内の任意のテーブルまたはサーバー内の任意のデータベースを右クリックします。「上位200行を編集」を選択します。タスクバーの「SQL」ボタンを選択します。コードをコピーして既存のコードに貼り付け、再度実行します。これで、クエリの結果セットを編集できます。シェリー ;-)


それは点灯に役立ちました。
アサドアリ

2

クエリがビューとして記述されている場合は、ビューを編集して値を更新できます。すべてのビューで値を更新することはできません。特定のビューでのみ可能です。詳細については、MSDNリンクの表示によるデータの変更を参照してください。クエリのビューを作成し、以下のように200行を編集できます。

ここに画像の説明を入力してください


なぜここに反対票があるのか​​。質問はテーブル編集に固有のものではありません。問題は、クエリ出力の結果セットグリッドをどのように編集できるかについてです。可能であれば、クエリのビューを作成して行を編集できるようにすることを提案しました。
Venkataraman R 2016

0
  1. 明確にするために:オプション「上位行の編集コマンド」は、結果セットが編集可能かどうかに関係ありません。結果セットを制限する方法の1つにすぎません。

  2. 1つだけのテーブルに基づくクエリの結果セットを編集することは、常に可能です。

  3. 複数のテーブルに基づくクエリの結果セットは、次の条件が満たされる可能性があります:結果セットのフィールドがクエリの1つだけのベーステーブルに属している場合、それらのフィールドを一度に編集できます。フィールドが主キーの場合、次回行を編集できるようにするには、各行の更新後に更新/「SQLの実行」(Ctrl + R)を実行する必要があります。フィールドが主キーでない場合、更新/「SQLの実行」(Ctrl + R)を実行する必要はありません。

SQL Server 2008-2016でテストしました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.