- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在一个名为 Telligent 的社区平台上进行集成。我正在使用名为 BlogML 的第 3 方插件将博客文章从 XML 文件(BlogML 格式)导入到我的本地 Telligent 站点中。 Telligent 平台在其 SDK 中附带了许多类,以便我可以通过编程方式添加内容,例如博客文章。例如
myWeblogService.AddPost(myNewPostObject);
我使用的 BlogML 应用程序本质上是解析 XML 并创建博客文章对象,然后使用类似于上面示例行的代码将它们添加到网站。大约 40 次后导入后,我收到 SQL 错误:
Exception Details: System.Data.SqlClient.SqlException:
String or binary data would be truncated.
The statement has been terminated.
我相信此错误意味着我试图将太多数据插入到具有最大大小限制的数据库字段中。不幸的是,我无法判断这是哪个领域的问题。我在执行导入时运行了 SQL Server Profiler,但我似乎无法看到错误发生在哪个存储过程上。是否有另一种方法可以使用探查器或其他工具来准确查看哪个存储过程,甚至是哪个字段导致了错误?还有其他提示可以获取有关具体查看位置的更多信息吗?
哦,第三方工具的乐趣......
最佳答案
您是正确的,异常是由于尝试将太多数据填充到基于字符/二进制的字段中。如果您捕获正确的事件,运行跟踪绝对应该允许您查看哪个过程/语句抛出异常,您想要捕获的事件包括:
如果您确定这是一个包含错误代码的存储过程,则可以取消捕获 # 的 1-4。确保您还捕获了跟踪中的所有关联列(如果您使用 Profiler 工具运行跟踪,则应该是默认列)。 Exception 类将在跟踪中包含实际错误,这应该允许您查看引发异常的同一 SPID 中紧邻的前面的语句。除了已完成的事件之外,您还必须包含开始事件,因为发生的异常将阻止在跟踪中触发关联的已完成事件。
如果您可以将跟踪过滤到特定的数据库、应用程序、主机名等,那么如果您位于繁忙的服务器上,那么肯定会更容易进行调试,但是如果您位于空闲的服务器上,则可能不需要费心过滤。
假设您使用的是 Sql 2005+,跟踪将包括一个名为“EventSequence”的列,它基本上是一个按事件触发顺序排序的递增值。运行跟踪并捕获输出后,找到触发的“异常”事件(如果您使用分析器,该行将为红色),那么您应该能够简单地找到最新的 SP:StmtStarting 或异常之前发生的同一 SPID 的 SQL:StmtStarting 事件。
这是我捕获的配置文件的屏幕截图,重现了与您类似的事件:
您可以看到红色的异常行,突出显示的行是在同一 SPID 的异常之前触发的前一个 SP:StmtStarting 事件。如果您想查找该语句属于哪个存储过程,请查找 ObjectName 和/或 ObjectId 列中的值。
关于sql-server - SQL错误: String or binary data would be truncated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888666/
MySQL 似乎允许 TRUNCATE table_name 并且实际上确实截断了表。似乎存在性能差异,TRUNCATE TABLE table_name 似乎更快。我找不到任何关于差异的信息。我发现
我想避免使用 Aerospike 客户端(例如 Python)并使用 native asinfo 从集合中删除记录命令'truncate'因为它可以快速完成。但在我重新启动 Aerospike 后,所
我缺乏构建存储过程的经验,并且遇到了这个错误,我无法理解背后的原因: [2015-09-29 01:01:55] [22001][1292] Data truncation: Truncated in
这个问题很难用短语来表达,所以让我解释一下。 作为 RSS 缓存系统的一部分,我每天多次将大量行插入到数据库中。其中一列是“片段”,用于 RSS 提要中的 description 节点。 有时这个节点
我想我的标题不是那么清楚。 我会试着解释一下: 我可以使用 FileStream 写入和读取文件 FileStream fs = new FileStream("C:\\Users\\Public\\
我正在尝试优化我的批量加载程序。 目前我分步加载数据(我不遵循下面的 SQL 语法,只遵循算法): BEGIN TRUNCATE table COPY into table ANALYZE table
我正在尝试为我的 Minecraft 服务器编写一个商店插件,但每当有人执行/purchase 命令时我总是收到错误消息。 这是错误: 2012-07-03 04:27:28 [SEVERE]
TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作。 语法 ?
备注 与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点: 所用的事务日志空间较少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一个条目。TRUNCA
我最近也遇到了这个问题。当我将表(称为事件和索引)填充到超过 100 万个,并尝试截断它们以进行新测试时,截断后表不为空。 CQL 显示类似 cqlsh> select count(*) from e
如果我尝试截断约 4000 万个文档的大型集合,我会在 arangosh 中超时,并且 arangodb 服务会无响应。留言: arangosh [database_xxx]> db.[collect
我将 spring-data 与 CrudRepository 一起用于任何数据库访问。每天一次,我还必须截断包含大约 100GB 数据的缓存表并重建它。 问题:表被成功截断(我验证表是空的),但是文
这是我正在使用的基于this的sql答案: SET @pattern = '%_movielist'; SELECT concat('TRUNCATE TABLE ', GROUP_CONCAT(co
这是简化的查询。 SELECT `a`, TRUNCATE(`b` / 1000, 3) AS `b` FROM ( ... ) AS `m`
我使用的 MySQL 服务器是 5.5.41。我还想指出,我没有设计这个数据库。 我遇到的问题是,在使用 MySQL 的 TRUCATE 函数时,我似乎因一个错误而中断。因为它不准确。请参阅随附的屏幕
Truncate table语句用来删除/截断表里的所有数据 和delete删除所有表数据在逻辑上含义相同,但性能更快 类似执行了drop table和create table两个语句
前言 上周同事小姐姐问我:“哈哥你看,我发现MySQL有bug,我下午为了清理磁盘,明明删除了100万条MySQL数据,磁盘不仅没有变小,反而更满了呢??” 那你是怎么删除的?
本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: ?
不同点: 1.truncate和delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该
SQLite Truncate Table 在SQLite 中,并没有 TRUNCATE TABLE 命令,但可以使用 SQLite 的 DELETE 命令从已有的表中删除全部的数据,但建议使用 D
我是一名优秀的程序员,十分优秀!