Exportando dados no SQL Server como INSERT INTO

Eu estou usando o SQL Server 2008 Management Studio e tenho uma tabela que eu quero migrar para um servidor db diferente.

Existe alguma opção para exportar os dados como uma inserção no script SQL?

No SSMS no Pesquisador de Objetos, clique com o botão direito do mouse no database, clique com o botão direito e selecione “Tarefas” e depois “Gerar Scripts”.

Isso permitirá que você gere scripts para uma ou todas as tabelas, e uma das opções é “Dados de Script”. Se você definir isso como TRUE, o assistente gerará um script com a instrução INSERT INTO () para seus dados.

Se usar 2008 R2 ou 2012, isso é chamado de outra coisa, veja a captura de canvas abaixo.

texto alternativo

2008 R2 ou posterior, por exemplo, 2012

Selecione “Tipos de Dados para Script”, que pode ser “Somente Dados”, “Esquema e Dados” ou “Somente Esquema” – o padrão).

insira a descrição da imagem aqui

E, em seguida, há um pacote ” SSMS Addin ” no Codeplex (incluindo a fonte), que promete praticamente a mesma funcionalidade e mais alguns (como encontrar rapidamente etc.)

texto alternativo

Por uma questão de excesso de explícito brainlessness, depois de seguir as instruções marc_s ‘para aqui …

No SSMS no Object Explorer, clique com o botão direito do mouse no database, clique com o botão direito do mouse e escolha “Tasks” e, em seguida, “Generate Scripts”.

… Então, vejo uma canvas do assistente com ” Introdução, Escolher Objetos, Definir Opções de Script, Resumo e Salvar ou Publicar Scripts ” com os botões anterior, seguinte, terminar e cancelar na parte inferior.

Na etapa Definir Opções de Script , você deve clicar em “Avançado” para obter a página com as opções. Então, como Ghlouw mencionou, você agora seleciona “Tipos de dados para script” e lucra.

botão avançado DESTACADO EM VERMELHO! 1 !!

Se você usar SQLServer 2008R2, precisará definir o campo Tipos de dados no script.

insira a descrição da imagem aqui

Se você estiver executando o SQL Server 2008 R2, as opções internas para fazer isso no SSMS, como marc_s, descritas acima, mudaram um pouco. Em vez de selecionar Script data = true como mostrado em seu diagrama, agora há uma nova opção chamada "Types of data to script" logo acima do agrupamento “Table / View Options”. Aqui você pode selecionar apenas dados de script, esquema e dados ou apenas esquema. Funciona como um encanto.

Para aqueles que procuram uma versão de linha de comando, a Microsoft lançou o mssql-scripter para fazer isso:

 $ pip install mssql-scripter # Generate DDL scripts for all database objects and DML scripts (INSERT statements) # for all tables in the Adventureworks database and save the script files in # the current directory $ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \ -f './' --file-per-object 

Você também pode verificar o “Suplemento de Scripter de Dados” para o SQL Server Management Studio 2008 a partir de:

http://www.mssql-vehicle-data.com/SSMS


Sua lista de resources:

  • Foi desenvolvido no SSMS 2008 e não é suportado na versão 2005 neste momento (em breve!)

  • Exportar dados rapidamente para a syntax do T-SQL for MSSQL e MySQL

  • CSV, TXT, XML também são suportados! Aproveite todo o potencial, potência e velocidade que o SQL tem a oferecer.

  • Não espere o Access ou o Excel fazer um trabalho de script para você que pode levar alguns minutos para ser feito – deixe o SQL Server fazer isso para você e tire todo o trabalho de adivinhação de exportar seus dados!

  • Personalize sua saída de dados para backups rápidos, manipulação de DDL e muito mais …

  • Alterar nomes de tabelas e esquemas de database para suas necessidades, de forma rápida e eficiente

  • Exportar nomes de coluna ou simplesmente gerar dados sem os nomes.

  • Você pode escolher colunas individuais para o script.

  • Você pode escolher subconjuntos de dados (cláusula WHERE).

  • Você pode escolher a ordem dos dados (cláusula ORDER BY).

  • Ótimo utilitário de backup para as operações de debugging de database sujo que exigem manipulação de dados. Não perca dados enquanto experimenta. Manipule dados na mosca!

Tudo acima é bom, mas se você precisar

  1. Exportar dados de várias visualizações e tabelas com junções
  2. Criar instruções de inserção para diferentes RDBMSs
  3. Migre dados de qualquer RDBMS para qualquer RDBMS

então o seguinte truque é o único caminho.

Primeiro, aprenda como criar arquivos de spool ou exportar conjuntos de resultados do cliente de linha de comando de db de origem. Segundo, aprenda como executar instruções sql no database de destino.

Por fim, crie as instruções de inserção (e quaisquer outras instruções) para o database de destino executando um script sql no database de origem. por exemplo

 SELECT '-- SET the correct schema' FROM dual; SELECT 'USE test;' FROM dual; SELECT '-- DROP TABLE IF EXISTS' FROM dual; SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual; SELECT '-- create the table' FROM dual; SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual; SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1; 

O exemplo acima foi criado para o database Oracle, onde o uso de dual é necessário para seleções sem tabela.

O conjunto de resultados conterá o script para o db de destino.

Aqui está um exemplo de criação de um script de migration de dados usando um cursor para iterar a tabela de origem.

 SET NOCOUNT ON; DECLARE @out nvarchar(max) = '' DECLARE @row nvarchar(1024) DECLARE @first int = 1 DECLARE cur CURSOR FOR SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')' FROM CV_ORDER_STATUS ORDER BY [Stage] PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON' PRINT 'GO' PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES'; OPEN cur FETCH NEXT FROM cur INTO @row WHILE @@FETCH_STATUS = 0 BEGIN IF @first = 1 SET @first = 0 ELSE SET @out = @out + ',' + CHAR(13); SET @out = @out + @row FETCH NEXT FROM cur into @row END CLOSE cur DEALLOCATE cur PRINT @out PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF' PRINT 'GO' 

Depois de pesquisar muito, foi o meu melhor tiro:

Se você tiver muitos dados e precisar de um script compacto e elegante, tente: SSMS Tools Pack

Ele gera uma união de todas as instruções select para inserir itens em tabelas de destino e lidar com transactions muito bem.

Screenshot

para o servidor SQl Mng Studio 2016:

insira a descrição da imagem aqui