SQL导入/导出数据

时间:2015-04-27 13:07:41

标签: sql sql-server import export

我有一个Windows表单应用程序链接到带有大量表格的Microsoft SQL Server数据库。

我在那里有2个按钮(导入和导出),当点击EXPORT时,这应该触发一个存储过程,它将生成一个字符串来仅导出数据(INSERT语句的加载 - 而不是表定义)。由此生成的字符串将保存为脚本文件。这将在以后用于将数据导入到不同的数据库中。

我正在考虑创建一个存储过程来执行此操作(但我并不完全确定如何)或者如果有更好的方法,我可以接受任何建议。

2 个答案:

答案 0 :(得分:0)

使用Management Studio生成脚本。

右键单击Object explorer中的数据库,从上下文菜单中选择" tasks",然后"生成脚本"。

在对话框中,选择要从中编写数据的表格。在下一页上设置目的地,然后单击" advanced"按钮。找到脚本的#34;类型的数据"选项 - 选择"仅数据"。

[edit]根据编辑过的问题,您可以使用Microsoft.SqlServer.Management.Smo.Scripter自动执行此操作,这是SSMS使用的同一个库。

答案 1 :(得分:0)

如果你想生成一个会为你生成一个insert语句的脚本,你可以使用一个查询构建它,就像这样......

SELECT 
    'SELECT ' + CAST(ID AS VARCHAR(10)) + ',''' + 
        VarcharField1 + ''',''' + 
        VarcharField2 + ''' UNION ALL'
FROM Example

如果您将结果显示为文本(Ctrl + T),则可以轻松抓取它以进行进一步操作。它会生成这样的东西......

SELECT 1,'Row1Field1','Row1Field2' UNION ALL
SELECT 2,'Row2Field1','Row2Field2' UNION ALL
SELECT 3,'Row3Field1','Row3Field2' UNION ALL
SELECT 4,'Row4Field1','Row4Field2' UNION ALL

您需要在结果前添加INSERT [TableName]并修剪最后一个UNION ALL,但这样可行。我以前用了好几次。 SQL Fiddle example