Como editar dados na grade de resultados no SQL Server Management Studio


94

Quero editar alguns valores de linha assim que obtiver uma saída de consulta na grade de resultados. É verdade que podemos clicar com o botão direito na tabela e dizer abrir tabela para obter uma saída de tabela editável, mas o que eu quero é uma saída de consulta editável, apenas algumas linhas que correspondem aos meus critérios, e editá-las na grade de resultados.

Isso é possível dentro do Microsoft SQL Server Management Studio Express?


1
Marque como duplicado com stackoverflow.com/questions/1535469/… ? Ele também tem uma solução totalmente funcional
Brad

3
@Brad - A resposta à pergunta vinculada apenas funciona se você estiver usando uma única tabela, ou seja, sem associações. Depois de começar a ingressar em 2 ou 3 mesas, você não poderá mais fazer isso. Seria interessante se houvesse outras soluções.
Francis Rodgers

2
Leia a resposta de @Yves A Martin abaixo para obter uma alternativa para editar tabelas que estão JUNTAS.
jaredbaszler

Respostas:


86

Você pode fazer algo semelhante ao que quiser. Clique com o botão direito em uma tabela e selecione "editar as 200 primeiras linhas" (se você estiver no SQL Server 2008) ou "abrir tabela" no SQL Server 2005. Assim que você chegar lá, há um botão no topo que diz "SQL"; quando você clica nele, ele permite que você escreva uma instrução SQL e você pode editar os resultados dela se clicar em uma célula que deseja alterar.


1
Estamos em 2019, sua última versão é o SSMS 2017, mas a mesma abordagem deve ser usada para editar células de grade! um design de IU tão ruim!
S.Serpooshan

77

Sim, isso é possível. Clique com o botão direito na tabela e clique Edit Top 200 Rowscomo mostra a imagem abaixo

insira a descrição da imagem aqui

Em seguida, clique em qualquer lugar dentro da grade de resultados, para habilitar o SQLícone "Mostrar Painel Sql". Isso abrirá o editor sql para a tabela que você optou por editar, aqui você pode escrever sua própria consulta sql e, em seguida, editar diretamente o conjunto de resultados da consulta.

insira a descrição da imagem aqui


25

Você pode fazer isso:

  • transformando sua consulta selecionada em uma visualização
  • clique com o botão direito na visualização e escolha Edit All Rows (você obterá uma grade de valores que pode editar - mesmo se os valores forem de tabelas diferentes).

Você também pode adicionar gatilhos de Inserir / Atualizar à sua visão que permitirão que você pegue os valores de seus campos de visão e então use o T-SQL para gerenciar atualizações em várias tabelas.


1
+1 - Esta é a maneira melhor e mais fácil de editar tabelas que estão JUNTAS. Embora seja muito trabalhoso realizar essa tarefa, é a única maneira que encontro para fazê-lo.
jaredbaszler

Você não pode editar tabelas JOINED. Apenas instruções SQL não JOIN. Todas as minhas células são não editáveis, quando eu tenho um JOIN.
Charles Robertson

20

SSMS - Clique com o botão direito nos resultados de Editar 200 | Opção | Pane | SQL - edite a instrução.


SSMS 2014, pule a etapa "Opção".
Denise Skidmore

17

Não. Não há como editar a grade de resultados. A grade de resultados é principalmente para fins de exibição da consulta que você executou.

Isso porque qualquer pessoa pode executar consultas complexas. Esperamos que no próximo lançamento eles incluam este tipo de funcionalidade.

Espero que responda a sua pergunta.


6
Não vejo por que as pessoas votaram contra sua resposta. É realmente correto. Depois de usar uma junção em sua consulta, você não pode editar os resultados usando os métodos sugeridos em nenhuma das respostas até agora. +1 de mim.
Francis Rodgers

Você pode copiar a consulta para um painel de edição SQL da grade, que é o que as outras respostas fazem alusão.
Denise Skidmore

17

As respostas dadas ainda são válidas. Nenhuma alteração no SSMS (SQL Server 2016) foi feita a esse respeito.

Você também pode usar o painel de critérios, depois de fazer "Editar as 200 linhas principais".

Editar menu de contexto dos 200 principais

  1. Mostrar painel de critérios
  2. Insira algum critério
  3. Edite os dados diretamente na grelha de resultados

Abra o painel de critérios

Além disso, o número de linhas para esses comandos pode ser personalizado nas opções do SSMS.

insira a descrição da imagem aqui


10

ATUALIZE
como você pode ver a solução correta na resposta de aprendizagem , no gerenciamento do servidor SQL 2014 você pode
1.clique em " Editar as 200 linhas principais "
e depois
2.clique em " Mostrar painel SQL (ctrl + 3) "
e
3. remova TOP ( 200) da consulta selecionada


Consulte a resposta de Shen Lance, não há como editar o Resultado da consulta selecionada. e as outras respostas são apenas para seleção normal e apenas para 200 registros.


5

Sim, você pode editar os resultados combinados. (pelo menos no SSMS 2008 R2) Depois de editar qualquer um dos valores de resultado na Visualização que usa junções, você precisará executar a consulta novamente para atualizar os resultados.

Você também precisa se certificar de que o SSMS está configurado para permitir "Editar todas as linhas" ... para fazer isso em SSMS - Ferramentas | Opções | SQL Server Object Explorer | Comandos ... expanda as Opções de Tabela e Visualização ... coloque um valor de 0 em "Valor para o comando Editar as N Principais Linhas" ... pode fazer isso também para a seleção.

A resposta de Yves A Martin está 100% correta!

Roubar


5

Basta escolher "Editar as 200 linhas principais", pressionar Ctrl + 3 na região da grade de edição (ou clicar em "Mostrar painel SQL") e editar a consulta ...

Mas observe que isso funcionará apenas para a consulta que não contém "junção"


4

Em primeiro lugar, clique com o botão direito no conto e selecione 'Editar todas as linhas', selecione 'Designer de consulta -> Painel -> SQL', depois disso você pode editar a saída da consulta na grade.


3

Se você precisa realizar edições in-cell com frequência em bancos de dados SQL, o HeidiSQL funciona muito bem, não poderia ser mais simples de usar e é de código aberto / gratuito (aceitam-se doações).

Originalmente escrito para MySQL, agora pode lidar com SQL Server e também possui suporte experimental (em agosto de 2014) para PostgreSQL.


3

Clique com o botão direito em qualquer tabela em seu dB de interesse ou em qualquer banco de dados no servidor usando master se houver junções ou usando vários dBs. Selecione "editar as 200 linhas principais". Selecione o botão "SQL" na barra de tarefas. Copie e cole seu código sobre o código existente e execute novamente. Agora você pode editar o conjunto de resultados da sua consulta. Sherry ;-)


Isso ajudou um lit.
Asad Ali

2

Se a consulta for escrita como uma visão, você pode editar a visão e atualizar os valores. A atualização de valores não é possível para todas as visualizações. É possível apenas para visualizações específicas. Consulte Modificando dados por meio do link Exibir MSDN para obter mais informações. Você pode criar uma visualização para a consulta e editar as 200 linhas conforme mostrado abaixo:

insira a descrição da imagem aqui


Por que há voto negativo aqui. A questão não é específica para a edição de uma tabela. A questão é sobre como podemos editar a grade do conjunto de resultados para qualquer saída de consulta que ele esteja obtendo. Sugeri, se possível, ele pode criar uma visão para a consulta e editar as linhas.
Venkataraman R

0
  1. Para ficar claro: A opção "Valor para o comando Editar as Linhas Superiores" não tem nada a ver com o fato de um conjunto de resultados ser editável ou não. É apenas uma forma de limitar o conjunto de resultados.

  2. A edição do conjunto de resultados de uma consulta com base em uma e apenas uma tabela é obviamente sempre possível.

  3. O conjunto de resultados de uma consulta com base em mais de uma tabela está nas seguintes condições possíveis: Você pode editar os campos no conjunto de resultados de uma vez se eles pertencerem a uma e somente uma tabela com base na consulta! Se os campos forem Chave primária, então você deve preencher a atualização / "Executar SQL" (Ctrl + R) após cada atualização de linha, para poder editar uma linha na próxima vez. Se os campos não forem Chave primária, você não precisa preencher a atualização / "Executar SQL" (Ctrl + R).

Eu testei no SQL Server 2008-2016!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.