2

是否有免费工具可让您将 MS-SQL Express (2005) 表的数据(而不是结构)作为 INSERT 语句转储到平面文件中?

这个商业产品似乎符合我的想法。我尝试使用SqlDump,但我的完整服务器名称不适合其 SQL Server Name 字段。

4

6 回答 6

4

你需要做的是

  1. 在管理工作室中右键单击您的数据库
  2. 选择任务 -> 生成脚本
  3. 选择要从中获取数据的表
  4. 在下一步中单击高级并将“脚本的数据类型”设置为仅数据(或您需要的任何内容)

适用于 sql servver 2008 r2。在以前版本的 sql server 中,它类似于您设置为 true 的“脚本数据”。

于 2013-01-21T16:34:29.627 回答
2

tablediff 是 MS SQL Server 附带的免费工具。只要您的源是要从中生成插入的表,并且您有另一个要生成插入的空表,它就会准确地创建您正在寻找的文件。

BCP 可能是移动数据实用程序的更好选择 - 但它不会像您正在寻找的那样生成实际的 DML 插入语句。

我还要查看数据库发布向导。我没有使用过它,但它应该能够为您的模式和数据编写脚本——并且您可以从那里将它生成的脚本剪切为您正在寻找的内容。

有关 tablediff 实用程序的更多信息,请参阅此链接

请参阅此链接以下载数据库发布向导。

于 2009-05-01T15:34:05.093 回答
1

我认为对你有用,但你必须为每张桌子运行它。

于 2009-05-01T14:39:12.980 回答
1

我知道这不是您的想法,建议的工具看起来很有希望,但如果数据从一个 SQL Server 传输到另一个 SQL Server,则使用bcp是一种低开销的替代方案。下面的重要选项包括用于保留身份信息的 -E 和用于使用本机格式的 -n。执行第一条语句将构建一个批处理文件以将所有数据转储到文件中,第二条语句将创建 bcp ins。

Select 'bcp ' + Table_Catalog  + '..' + 
Table_Name + ' out ' + Table_Name 
+ '.bcp  -S ServerName -U userid -P password -n '
from information_schema.tables 
where table_type = 'BASE TABLE'

Select 'bcp ' + Table_Catalog  + '..' + Table_Name 
+ ' in .\' + Table_name + 
'.bcp  -S .\ -U userid -P password -n -E '
from information_schema.tables 
where table_type = 'BASE TABLE'

样本输出

bcp 输出命令

bcp master..tblDepartments out tblDepartments.bcp  -S ServerName -U
userid -P password -n 

bcp 在命令中

bcp master..tblDepartments in .\tblDepartments.bcp  -S .\ 
-U userid -P password -n -E 
于 2009-05-01T14:58:46.863 回答
0

这应该这样做http://sourceforge.net/projects/vwg-ent-man

于 2009-05-01T14:39:22.307 回答
0

试用免费的SSMS 工具包,它是 SSMS 和 SSMS Express 的插件。它使您能够为表、dte 整个数据库或仅为查询结果生成插入脚本。

于 2009-07-17T11:35:42.007 回答