我有一个Windows表单应用程序链接到带有大量表格的Microsoft SQL Server数据库。
我在那里有2个按钮(导入和导出),当点击EXPORT时,这应该触发一个存储过程,它将生成一个字符串来仅导出数据(INSERT语句的加载 - 而不是表定义)。由此生成的字符串将保存为脚本文件。这将在以后用于将数据导入到不同的数据库中。
我正在考虑创建一个存储过程来执行此操作(但我并不完全确定如何)或者如果有更好的方法,我可以接受任何建议。
答案 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