Comment modifier les données dans la grille de résultats dans SQL Server Management Studio

94

Je souhaite modifier certaines valeurs de ligne une fois que j'obtiens une sortie de requête dans la grille de résultats. C'est vrai que nous pouvons faire un clic droit sur la table et dire table ouverte pour obtenir une sortie de table modifiable, mais ce que je veux, c'est une sortie de requête modifiable, seulement certaines lignes correspondant à mes critères et les éditer dans la grille de résultats.

Est-ce possible dans Microsoft SQL Server Management Studio Express?

bi2mon
la source
1
Marquer comme duplicata avec stackoverflow.com/questions/1535469/… ? Il a également une solution entièrement fonctionnelle
Brad
3
@Brad - La réponse à la question liée à ne fonctionne que si vous utilisez une seule table, c'est-à-dire pas de jointure. Une fois que vous commencez à rejoindre 2 ou 3 tables, vous ne pouvez plus le faire. Ce serait intéressant s'il y avait d'autres solutions.
Francis Rodgers
2
Lisez la réponse @Yves A Martin ci-dessous pour une alternative à l'édition des tables jointes.
jaredbaszler

Réponses:

86

Vous pouvez faire quelque chose de similaire à ce que vous voulez. Cliquez avec le bouton droit sur une table et sélectionnez «modifier les 200 premières lignes» (si vous êtes sur SQL Server 2008) ou «ouvrir la table» dans SQL Server 2005. Une fois que vous y êtes, il y a un bouton en haut qui dit «SQL»; lorsque vous cliquez dessus, cela vous permet d'écrire une instruction SQL et vous pouvez en modifier les résultats si vous cliquez sur une cellule que vous souhaitez modifier.

Lamak
la source
1
Nous sommes en 2019, sa dernière version est SSMS 2017, toujours la même approche devrait être utilisée pour éditer les cellules de la grille! une si mauvaise conception de l'interface utilisateur!
S.Serpooshan
77

Oui, c'est possible. Faites un clic droit sur le tableau et cliquez sur Edit Top 200 Rowscomme le montre l'image ci-dessous

entrez la description de l'image ici

Cliquez ensuite n'importe où dans la grille de résultats pour activer l' SQLicône "Afficher le volet SQL". Cela ouvrira l'éditeur SQL pour la table que vous avez choisi de modifier, ici vous pouvez écrire votre propre requête SQL, puis vous pouvez directement modifier le jeu de résultats de la requête.

entrez la description de l'image ici

Apprentissage
la source
25

La façon dont vous pouvez le faire est de:

  • transformer votre requête de sélection en une vue
  • Edit All Rows faites un clic droit sur la vue et choisissez (vous obtiendrez une grille de valeurs que vous pouvez modifier - même si les valeurs proviennent de tables différentes).

Vous pouvez également ajouter des déclencheurs d'insertion / mise à jour à votre vue qui vous permettront de récupérer les valeurs de vos champs de vue, puis d'utiliser T-SQL pour gérer les mises à jour de plusieurs tables.

Yves A Martin
la source
1
+1 - C'est le moyen le meilleur et le plus simple d'éditer les tables jointes. Bien que ce soit trop de travail pour accomplir cette tâche, c'est le seul moyen que je puisse trouver pour le faire.
jaredbaszler
Vous ne pouvez pas modifier les tables JOINED. Uniquement les instructions SQL non JOIN. Toutes mes cellules ne sont pas modifiables, lorsque j'ai un JOIN.
Charles Robertson le
20

SSMS - Cliquez avec le bouton droit sur les résultats de la modification 200 | Option | Pane | SQL - modifiez l'instruction.

Ta01
la source
SSMS 2014, ignorez l'étape «Option».
Denise Skidmore
17

Non. Vous ne pouvez pas modifier la grille de résultats. La grille de résultats sert principalement à afficher les besoins de la requête que vous avez exécutée.

Ceci pour la raison que n'importe qui peut exécuter des requêtes complexes. Espérons que pour la prochaine version, ils incluront ce type de fonctionnalité.

J'espère que cela répond à votre question.

mr.b
la source
6
Je ne vois pas pourquoi les gens ont rejeté votre réponse. C'est en fait correct. Une fois que vous avez utilisé une jointure dans votre requête, vous ne pouvez pas modifier les résultats à l'aide des méthodes suggérées dans aucune des réponses jusqu'à présent. +1 de moi.
Francis Rodgers
Vous pouvez copier la requête dans un volet SQL de la grille d'édition, ce à quoi les autres réponses font allusion.
Denise Skidmore
17

Les réponses données sont toujours valables. Aucun changement dans SSMS (SQL Server 2016) n'a été apporté à cet égard.

Vous pouvez également utiliser le volet des critères, après avoir effectué "Modifier les 200 premières lignes".

Modifier le menu contextuel des 200 premiers

  1. Afficher le volet des critères
  2. Entrez un critère
  3. Modifier les données directement dans la grille de résultats

Ouvrir le volet des critères

De plus, le nombre de lignes pour ces commandes peut être personnalisé dans vos options SSMS.

entrez la description de l'image ici

Ricardo C
la source
10

MISE À JOUR
comme vous pouvez voir la solution correcte dans la réponse d' apprentissage , dans la gestion de serveur SQL 2014, vous pouvez
1. cliquer sur " Modifier les 200 premières lignes "
, puis
2. cliquer sur " Afficher le volet SQL (ctrl + 3) "
et
3. supprimer TOP ( 200) à partir de la requête sélectionnée


Reportez-vous à la réponse de Shen Lance, il n'y a pas de moyen de modifier le résultat de la requête de sélection. et les autres réponses ne concernent que la sélection normale et seulement 200 enregistrements.

Hamid
la source
5

Oui, vous pouvez modifier les résultats joints. (au moins dans SSMS 2008 R2) Après avoir modifié l'une des valeurs de résultat dans la vue qui utilise des jointures, vous devez réexécuter la requête pour actualiser les résultats.

Vous devez également vous assurer que SSMS est configuré pour autoriser "Modifier toutes les lignes" ... pour ce faire dans SSMS - Outils | Options | Explorateur d'objets SQL Server | Commandes ... développez les options de table et d'affichage ... mettez une valeur de 0 dans "Valeur pour la commande Modifier les n premières lignes" ... peut également le faire pour la sélection.

La réponse d'Yves A Martin est correcte à 100%!

Rob

Rob Ainscough
la source
5

Choisissez simplement "Modifier les 200 premières lignes", appuyez sur Ctrl + 3 dans la zone d'édition de la grille (ou cliquez sur "Afficher le volet SQL") et modifiez la requête ...

Mais veuillez noter que cela ne fonctionnera que pour la requête qui ne contient pas de "jointure"

À M
la source
4

Tout d'abord, faites un clic droit sur le conte, sélectionnez «Modifier toutes les lignes», sélectionnez «Concepteur de requêtes -> Volet -> SQL», après quoi vous pouvez modifier la sortie de la requête dans la grille.

Jack.one
la source
3

Si vous avez besoin d'effectuer fréquemment des modifications dans la cellule sur des bases de données SQL, HeidiSQL fonctionne à merveille , ne pourrait pas être plus simple à utiliser et est gratuit / open source (dons acceptés).

Initialement écrit pour MySQL, il peut désormais gérer SQL Server et dispose également d'un support PostgreSQL expérimental (à partir d'août 2014).

Sean O
la source
3

Cliquez avec le bouton droit de la souris sur n'importe quelle table de votre dB d'intérêt ou sur n'importe quelle base de données du serveur utilisant master s'il y a des jointures ou utilisant plusieurs dB. Sélectionnez "modifier les 200 premières lignes". Sélectionnez le bouton "SQL" dans la barre des tâches. Copiez et collez votre code sur le code existant et réexécutez. Vous pouvez maintenant modifier l'ensemble de résultats de votre requête. Sherry ;-)

Échantillons Sherry R
la source
Cela a aidé un lit.
Asad Ali
2

Si la requête est écrite sous forme de vue, vous pouvez modifier la vue et mettre à jour les valeurs. La mise à jour des valeurs n'est pas possible pour toutes les vues. Cela n'est possible que pour des vues spécifiques. Voir Modification des données via View MSDN Link pour plus d'informations. Vous pouvez créer une vue pour la requête et modifier les 200 lignes comme indiqué ci-dessous:

entrez la description de l'image ici

Venkataraman R
la source
Pourquoi il y a un vote négatif ici. La question n'est pas spécifique à une édition de tableau. La question est de savoir, comment pouvons-nous éditer la grille du jeu de résultats pour la sortie de requête qu'il obtient. J'ai suggéré, si possible, qu'il puisse créer une vue pour la requête et modifier les lignes.
Venkataraman R
0
  1. Pour être clair: l'option "Valeur pour la commande Modifier les premières lignes" n'a rien à voir avec le fait qu'un jeu de résultats soit modifiable ou non. C'est juste un moyen de limiter l'ensemble de résultats.

  2. La modification du jeu de résultats d'une requête basée sur une et une seule table est évidemment toujours possible.

  3. L'ensemble de résultats d'une requête basée sur plus d'une table est sous la condition suivante possible: Vous pouvez modifier les champs dans l'ensemble de résultats à la fois s'ils appartiennent à une et une seule table basée dans la requête! Si les champs sont Clé primaire, vous devez alors effectuer une actualisation / "Exécuter SQL" (Ctrl + R) après chaque mise à jour de ligne, afin de pouvoir modifier une ligne la prochaine fois. Si les champs ne sont pas la clé primaire, vous n'avez pas besoin de remplir la fonction d'actualisation / "Exécuter SQL" (Ctrl + R).

Je l'ai testé sur SQL Server 2008-2016!

Asg
la source