【发布时间】:2011-04-10 21:58:33
【问题描述】:
问题
我正在尝试使用 SQL Server Management Studio 的 Import Data 任务将数据导入表中。在最初的 49,325 行中,它只带来了 26 行。 (编辑:这就是 99.9% 的来源:(1-26/49325)*100 = 99.9%
在企业管理器中正确使用 DTS 会带来所有 49,325 行。
为什么 SSMS 没有导入所有行,报告它传输 49,325 成功,并且没有遇到错误?为什么 Enterprise Manager 能够正确导入所有 49,325 行?
Microsoft SQL Server Management Studio 版本:10.0.1600.22(来自 SQL Server 2008,今天安装在新的 Windows 7 机器上,应用了 SP1)
证明 - 使用 SSMS 导入
STRTransactions 表最初是空的:
来源是lithium上的ContosoFrobManager数据库:
目标是lithium 上的Grob 数据库;
我想从一个(或多个)表中复制数据:
我想复制STRTransactions 表:
您可以追加到现有表,这很好(它是空的)。我想启用身份插入。并且不要尝试导入时间戳(因为无论如何你都会抱怨):
立即运行,没关系:
是的,你要做的事情:
当它传输 49,325 行时,我设法抓住了它,大约 1k 标记:
全部完成。全部 49,325 行复制成功:
报告如下:
执行成功
初始化数据流任务(成功)
初始化连接(成功)
设置 SQL 命令(成功)
设置源连接(成功)
设置目标连接(成功)
验证(成功)消息警告 0x80049304:数据流任务 1: 警告:无法打开全局共享 内存与性能沟通 动态链接库;数据流性能计数器 不可用。要解决,请运行 此软件包以管理员身份,或 在系统的控制台上。 (SQL 服务器 导入和导出向导)警告 0x80047076:数据流任务 1: 输出列“时间戳”(158) 输出“OLE DB 源输出”(11) 和 组件“源 - STRTransactions” (1) 以后不再使用 数据流任务。删除这个未使用的 输出列可以增加数据流 任务表现。 (SQL Server 导入 和导出向导)
准备执行(成功)
预执行(成功)
执行(成功)
正在复制到 [dbo].[STRTransactions](成功)已传输 49325 行
消息信息 0x402090df:数据 流程任务 1:最终提交 在“组件”中插入数据 "目标 - STRTransactions" (163)" 已经开始。 (SQL Server 导入和 导出向导)信息 0x402090e0:数据流任务 1: 数据插入的最终提交 在“组件”目的地 - STRTransactions" (163)" 已结束。 (SQL Server 导入导出向导)
- 执行后(成功)消息信息 0x4004300b:数据流任务 1:“组件”目的地- STRTransactions" (163)" 写道 49325 行。 (SQL Server 导入和导出 向导)
非常好。全做完了。 “写了 49325 行”。
除了它只写了26行:
显然我没疯。我做的一切都是正确的。即使我没有,SSMS 也没有给出任何问题的迹象。我已经重复了这些相同的步骤 8 次:
- 给自己5次
- 两次向两个不同的同事展示
- 一次截屏此 SO 问题的过程
每次正好是 26 行,不多也不少。但是哪个被毁了,师父还是徒弟?
但为了证明我没有做错任何事情,我们将使用 Enterprise Manager 再试一次。十多年前写的优秀工具:
证明 - 使用 Enterprise Manager 导入
我已从 STRTransactions 表中删除了 26 行。我可以提供一个从空表开始的屏幕截图;或者你可以相信我。由于向导几乎相同,您将看到几乎相同的屏幕截图。对于那个很抱歉;但是没有证据没有人会相信我。
我想从lithium 上的ContosoFrobManager 数据库导出:
我想导入到lithium 上的Grob 数据库:
我想复制表格:
我想复制 STR Transactions 表:
您可以继续将行追加到现有表(无论如何它都是空的)。我希望你插入身份值。并且不要尝试插入 timestamp 值,否则你只会抛出错误:
现在运行,当然:
是的,你将要做一些事情:
我设法在导入过程中捕捉到它,大约 12k 行:
全部完成,已成功复制 49,325 行:
我们从表格中选择来查看行:
为什么SSMS这个积极开发了6年的工具到现在还没有落地呢?虽然 Enterprise Manager 在最初的开发团队中几乎没有错误?这是 SSMS 中严重错误的另一个示例。我发现的最后一个严重错误was that it does not script all objects。
我怀疑我能看到的唯一答案是
- 使用其他工具
- 您在 Microsoft Connect 上报告过吗?
- 呼叫 PSS
当然,我有一个解决方法:停止使用 SQL Server Management Studio。但是我已经不得不在 XP Mode 32 位兼容性的东西中运行企业管理器(正如您在我的 Aero 主题桌面上的 Luna 主题窗口中看到的那样)
Me: 我让它工作了
Colleague: 怎么样?
Me:我用的是企业管理器
Colleague: 嘲笑好吧。
Colleague: 那我可能需要安装它。
我创建了一个ticket on Microsoft Connect,但几周后它就关闭了。
【问题讨论】:
-
您可能拥有撰写问题所花费时间最多的记录。也可能是有史以来最长的问题,也是单个问题的大多数屏幕截图。
-
@Mark Byers。不,我还有另一个问题,详细说明了
DwmGetColorizationColor函数的错误,我花了 很多 更多时间。问题是我必须实际编写代码,然后手动编写截图。在这里,我可以简单地使用 Window 的 Snipping Tool。 -
只是吹毛求疵:您在这里使用的是 SQL Server Integration Services (SSIS) - 它刚刚从 Mgmt Studio 启动,但它不是 Mgmt Studio 本身。甚至不要让我开始讨论旧的 EM/QA 组合的所有缺点和 UI 可用性噩梦............
-
@marc_s 我很想知道你不喜欢 EM 的什么地方。我仍然希望有一个单独的 QA 工具。因为现在我必须启动完整的类似 Visual Studio 的膨胀。我真的希望他们把东西放回模态窗口,而不是标签。如果我们必须有标签,至少按时间顺序排列它们,如 IE、FF、Chrome;而不是伪随机顺序。
-
@Mark Byers:我猜你对最长的问题是正确的。我的 DWM 问题 (stackoverflow.com/questions/3560890/…) 可能需要更长的时间来撰写,但最终会更短(这就是她所说的)
标签: sql-server ssms etl sql-server-2000