SQL 导入/导出数据

SQL Import / Export Data

我有一个 Windows 表单应用程序链接到 Microsoft SQL 服务器数据库,负载 tables。

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

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

使用 Management Studio 生成脚本。

右键单击对象资源管理器中的数据库,从上下文菜单中选择 "tasks",然后选择 "generate scripts"。

在对话框中,select 您希望从中编写数据脚本的表。在下一页设置目的地,然后单击 "advanced" 按钮。找到 "type of data to script" 选项 - 选择 "data only"。

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

如果您想生成一个脚本来为您生成插入语句,您可以使用查询来构建它,就像这样...

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 前放置一个 trim,但这行得通。我以前用过几次。 SQL Fiddle example