Respostas:
No SSMS no Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados, clique com o botão direito do mouse e escolha "Tarefas" e, em seguida, "Gerar Scripts".
Isso permitirá que você gere scripts para uma ou todas as tabelas, e uma das opções é "Script Data". Se você definir como TRUE, o assistente gerará um script com a instrução INSERT INTO () para seus dados.
Se o uso de 2008 R2 ou 2012 for chamado de outra coisa, veja a captura de tela abaixo desta
Selecione "Tipos de dados para script", que podem ser "Somente dados", "Esquema e dados" ou "Somente esquema" - o padrão).
E depois há um pacote " SSMS Addin " no Codeplex (incluindo código-fonte) que promete praticamente a mesma funcionalidade e mais alguns (como busca rápida, etc.)
Por uma questão de falta de inteligência explícita, depois de seguir as instruções de marc_s até aqui ...
No SSMS no Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione "Tarefas" e, em seguida, "Gerar Scripts".
... Então, vejo uma tela do assistente com " Introdução, Escolha objetos, Definir opções de script, Resumo e Salvar ou publicar scripts " com os botões prev, next, finish, cancel 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, agora você seleciona "Tipos de dados para script" e lucro.
Se você o usar, SQLServer 2008R2, precisará definir Tipos de dados no campo de script.
Se você estiver executando o SQL Server 2008 R2, as opções internas para fazer isso no SSMS, pois o marc_s descrito acima mudou um pouco. Em vez de selecionar Script data = true
como mostrado em seu diagrama, agora existe uma nova opção chamada "Types of data to script"
logo acima do grupo "Opções de tabela / exibição". Aqui você pode selecionar somente scripts de dados, esquema e dados ou somente esquema. Funciona como um encanto.
Para quem procura uma versão em linha de comando, a Microsoft lançoumssql-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
Atualizando capturas de tela para ajudar outras pessoas, pois estou usando uma v18 mais recente, por volta de 2019.
Aqui você pode selecionar determinadas tabelas ou escolher o padrão de todas. Para minhas próprias necessidades, estou indicando apenas uma tabela.
A seguir, há as "Opções de script", nas quais você pode escolher o arquivo de saída, etc. Como nas várias respostas acima (novamente, estou apenas tirando as respostas antigas das mais recentes, v18.4 SQL Server Management Studio), o que realmente queremos está sob o botão "Avançado". Para meus próprios propósitos, preciso apenas dos dados.
Finalmente, há um resumo da revisão antes da execução. Após a execução, é exibido um relatório do status das operações.
Você também pode conferir o "Data Scripter Add-In" para o SQL Server Management Studio 2008 em:
http://www.mssql-vehicle-data.com/SSMS
Sua lista de recursos:
Foi desenvolvido no SSMS 2008 e não é suportado na versão 2005 no momento (em breve!)
Exporte dados rapidamente para a sintaxe T-SQL para MSSQL e MySQL
CSV, TXT, XML também são suportados! Aproveite todo o potencial, poder e velocidade que o SQL tem a oferecer.
Não espere que o Access ou o Excel faça um trabalho de script para você, o que pode levar alguns minutos - deixe o SQL Server fazer isso por você e elimine toda a suposição de exportar seus dados!
Personalize sua saída de dados para backups rápidos, manipulação de DDL e muito mais ...
Altere nomes de tabelas e esquemas de banco de dados de acordo com suas necessidades, de forma rápida e eficiente
Exporte nomes de colunas ou simplesmente gere 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 depuração de banco de dados sujas que exigem manipulação de dados. Não perca dados ao experimentar. Manipule dados em tempo real!
Tudo acima é bom, mas se você precisar
então o truque a seguir é o único caminho.
Primeiro aprenda como criar arquivos de spool ou exportar conjuntos de resultados do cliente de linha de comando db de origem. Segundo, aprenda a executar instruções sql no banco de dados de destino.
Por fim, crie as instruções de inserção (e quaisquer outras instruções) para o banco de dados de destino executando um script sql no banco de dados 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 banco de dados Oracle, onde o uso de dual é necessário para seleções sem tabela.
O conjunto de resultados conterá o script para o banco de dados de destino.
Aqui está um exemplo de criação de um script de migração 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 muita pesquisa, foi minha melhor chance:
Se você possui muitos dados e precisa de um script compacto e elegante, tente: Pacote de ferramentas SSMS
Ele gera uma união de todas as instruções de seleção para inserir itens nas tabelas de destino e manipular transações muito bem.