Як редагувати дані в сітці результатів у SQL Server Management Studio


94

Я хочу відредагувати деякі значення рядків, як тільки я отримаю запит у сітці результатів. Це правда, що ми можемо клацнути правою кнопкою миші на таблиці та сказати відкриту таблицю, щоб отримати вихідний результат редагування таблиці, але те, що я хочу, - це вихід редагованого запиту, лише певні рядки, що відповідають моїм критеріям, та редагувати їх у сітці результатів.

Чи можливо це можливо в Microsoft SQL-сервері управління Studio Express?


1
Позначити як дублікат із stackoverflow.com/questions/1535469/… ? Він також має повністю працююче рішення
Бред

3
@Brad - Відповідь на запитання, на яке посилається, працює лише в тому випадку, якщо ви використовуєте одну таблицю, тобто немає об’єднань. Як тільки ви почнете приєднуватися до 2 або 3 таблиць, ви вже не можете цього робити. Було б цікаво, якби були інші рішення.
Френсіс Роджерс

2
Прочитайте відповідь @Yves a Martin нижче, щоб отримати альтернативу редагуванню таблиць, які приєдналися.
jaredbaszler

Відповіді:


86

Ви можете зробити щось подібне до того, що ви хочете. Клацніть правою кнопкою миші на таблиці та виберіть "редагувати верхні 200 рядків" (якщо ви перебуваєте на SQL Server 2008) або "відкрити таблицю" в SQL Server 2005. Після того, як ви потрапите туди, у верхній частині буде кнопка "SQL"; коли ви клацаєте на ньому, це дозволяє вам писати оператор SQL, і ви можете редагувати його результати, якщо клацнете клітинку, яку потрібно змінити.


1
Це 2019 рік, його остання версія - SSMS 2017, все ж такий же підхід слід використовувати для редагування комірок сітки! такий поганий дизайн інтерфейсу!
С.Серпоошан

78

Так, це можливо. Клацніть правою кнопкою миші на таблиці та натисніть, Edit Top 200 Rowsяк показано на малюнку нижче

введіть тут опис зображення

Потім клацніть де завгодно в сітці результатів, щоб увімкнути SQLпіктограму "Показати панель Sql". Це відкриє редактор sql для таблиці, яку ви вибрали для редагування, тут ви можете написати власний запит sql, а потім можете безпосередньо редагувати набір результатів запиту.

введіть тут опис зображення


25

Це можна зробити за допомогою:

  • перетворення обраного запиту у подання
  • клацніть правою кнопкою миші на виборі та виберіть Edit All Rows (ви отримаєте сітку значень, які ви можете редагувати - навіть якщо значення з різних таблиць).

Ви також можете додати тригери Insert / Update до вашого подання, що дозволить вам захопити значення з полів вашого перегляду, а потім використовувати T-SQL для управління оновленнями для декількох таблиць.


1
+1 - це найкращий та найпростіший спосіб редагування таблиць, які ПРИЄДНАЛИСЯ. Незважаючи на те, що це занадто багато роботи, щоб виконати це завдання, це єдиний спосіб, який я можу знайти.
jaredbaszler

Ви не можете редагувати таблиці JOINED. Лише не JOIN заяви SQL. Усі мої комірки неможливо редагувати, коли я ПРИЄДНАЮСЬ.
Чарльз Робертсон,

20

SSMS - правою кнопкою миші результати редагування 200 | Варіант | Панель | SQL - редагуйте оператор.


SSMS 2014, пропустіть крок "Варіант".
Деніз Скідмор,

17

Ні. Ви не можете редагувати сітку результатів. Сітка результатів призначена в основному для відображення цілей виконаного вами запиту.

Це з тієї причини, що кожен може виконувати складні запити. Сподіваємось, для наступного випуску вони включатимуть такий вид функціональності.

Сподіваюся, це відповість на ваше запитання.


6
Не розумію, чому люди проголосували вашу відповідь проти. Це насправді правильно. Після використання об’єднання у вашому запиті ви не можете редагувати результати, використовуючи методи, запропоновані в жодній із відповідей на даний момент. +1 від мене.
Френсіс Роджерс

Ви можете скопіювати запит на панель редагування сітки SQL, на що натякають інші відповіді.
Деніз Скідмор,

17

Наведені відповіді залишаються дійсними. З цього приводу жодних змін у SSMS (SQL Server 2016) не внесено.

Ви також можете скористатися панеллю критеріїв, виконавши "Редагування 200-ти рядків".

Редагувати контекстне меню Top 200

  1. Показати область критеріїв
  2. Введіть якийсь критерій
  3. Редагуйте дані безпосередньо в сітці результатів

Відкрита панель критеріїв

Крім того, кількість рядків для цих команд можна налаштувати у параметрах SSMS.

введіть тут опис зображення


10

UPDATE
, як ви можете побачити правильне рішення в Вивчення відповідь, управління 2014 SQL Server ви можете
1.click на « Edit Top 200 рядків » ,
а потім
2.clicking на « Показати SQL Pane (Ctrl + 3) »
і
3. видалення TOP ( 200) із запиту вибору


Зверніться до відповіді Шен Ланс, немає способу редагування результату вибору запиту. а інші відповіді лише для звичайного відбору та лише для 200 записів.


5

Так, ви можете редагувати об’єднані результати. (принаймні в SSMS 2008 R2) Після редагування будь-якого значення результату у поданні, яке використовує об’єднання, вам доведеться виконати запит ще раз, щоб оновити результати.

Вам також потрібно переконатися, що SSMS налаштовано так, щоб дозволити "Редагувати всі рядки" ... робити це в SSMS - Інструменти | Параметри | Провідник об'єктів SQL Server | Команди ... розгорніть параметри таблиці та перегляду ... поставте значення 0 у "Значення для команди Редагувати верхні n рядків" ... можна зробити це і для вибраних.

Відповідь Ів Мартіна на 100% правильна!

Роб


5

Просто виберіть "Редагувати верхні 200 рядків", натисніть Ctrl + 3 в області редагування сітки (або натисніть "Показати область SQL") і відредагуйте запит ...

Але зауважте, що це буде працювати лише для запиту, який не містить "приєднатися"


4

Перш за все клацніть правою кнопкою миші на казці, виберіть "Редагувати всі рядки", виберіть "Конструктор запитів -> Панель -> SQL", після чого ви зможете редагувати вихідні дані запиту в сітці.


3

Якщо вам потрібно часто виконувати внутрішнє редагування баз даних SQL, HeidiSQL працює із задоволенням, не може бути простішим у використанні та безкоштовним / з відкритим кодом (приймаються пожертви).

Спочатку написаний для MySQL, тепер він може обробляти SQL Server, а також має експериментальну (станом на серпень 2014 р.) Підтримку PostgreSQL.


3

Клацніть правою кнопкою миші на будь-якій таблиці у ваших дБ, що вас цікавить, або будь-якій базі даних на сервері, використовуючи master, якщо є об'єднання або використовуєте кілька дБ. Виберіть "редагувати верхні 200 рядків". Виберіть кнопку "SQL" на панелі завдань. Скопіюйте та вставте свій код над наявним кодом і запустіть знову. Тепер ви можете редагувати набір результатів вашого запиту. Шеррі ;-)


Це допомогло літ.
Асад Алі

2

Якщо запит написаний як подання, ви можете редагувати представлення та оновлювати значення. Оновлення значень можливо не для всіх подань. Це можливо лише для конкретних поглядів. Додаткові відомості див. У розділі Змінення даних за допомогою посилання MSDN View . Ви можете створити подання для запиту та відредагувати 200 рядків, як показано нижче:

введіть тут опис зображення


Чому тут негативне голосування. Питання не є специфічним для редагування таблиці. Питання в тому, як ми можемо редагувати сітку набору результатів для будь-якого результату запиту, який він отримує. Я запропонував, якщо це можливо, він може створити подання для запиту та відредагувати рядки.
Venkataraman R

0
  1. Щоб бути зрозумілим: параметр "Значення для команди Редагувати верхні рядки" не має нічого спільного з тим фактом, чи можна редагувати набір результатів чи ні. Це просто спосіб обмежити набір результатів.

  2. Редагувати набір результатів запиту на основі однієї та лише однієї таблиці, очевидно, завжди можливо.

  3. Набір результатів запиту, що базується на декількох таблицях, може виконуватися за такої умови: Ви можете відразу редагувати поля в наборі результатів, якщо вони належать до однієї та лише однієї таблиці на основі запиту! Якщо поля є Первинним ключем, вам доведеться виконати оновлення / "Виконати SQL" (Ctrl + R) після кожного оновлення рядка, щоб мати можливість редагувати рядок наступного разу. Якщо поля не є Первинним ключем, то Вам не потрібно виконувати оновлення / "Виконати SQL" (Ctrl + R).

Я протестував його на SQL Server 2008 - 2016!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.