【问题标题】:Server 2012 R2 SQL Database Change Column From ntext to nvarcharServer 2012 R2 SQL 数据库将列从 ntext 更改为 nvarchar
【发布时间】:2016-11-11 03:37:41
【问题描述】:

我有一个预定义的 SQL 数据库,我们必须使用我们购买的报告软件正常工作。当我们使用报告软件提取一列数据时,我们会收到system.indexoutofrangeexception 错误。在第一张桌子上,我们替换了所有分号 ';'数据中有空格,这纠正了问题。此列数据内没有任何其他特殊字符,只有分号。

但是,我们需要查询的第二列中的数据包含所有可能无效的不同类型的字符。列类型是 ntext 并且希望每次有新条目时直接更改 sql 数据库中的数据,或者将格式更改为 nvarchar(max) 或 nvarchar(1024) 就足够了?

感谢您对我在 sql 的支持。

【问题讨论】:

  • 这本身不是 SQL 异常。我认为您需要联系制作此报告软件的公司,或者以某种方式让您的问题超出此软件,从而成为实际的编程或数据库问题。你能看到正在运行的实际数据库语句(SQL Server Profiler?)或看到这个软件正在运行的代码吗?
  • 我无法看到报告软件中运行的代码,但是我可以使用 SQL 服务器分析器检查数据。我已经保存了跟踪文件。它似乎继续'exec sp_cursor 18015003,40,1'。在这种情况下,最后一位数字 1 递增到 1055。
  • 任何人都很难帮助您解决黑匣子问题。我会非常犹豫更改数据以适应报告工具,尤其是不知道哪些角色正在破坏工具,以及他们为什么这样做

标签: sql sql-server sql-server-2012 nvarchar ntext


【解决方案1】:

您的问题很可能与数据库中的数据类型无关,而与数据本身有关。

您的报告软件似乎有您的数据不满足的特定要求。

【讨论】:

  • 我同意你的评论。数据表内的数据与报表软件不配合。该软件生成一个 sql 查询以将数据提取到 excel 中。由于限制是报告软件在 SQL 数据表中是否有办法自动删除无效字符?软件的SQL语句如下 SELECT RecordID, DateTimeOccurred, EventSource, Location, Resource, UserName, DateTimeLogged, AttachmentCount, Message FROM [log_AuditEventLog] ORDER BY RecordID ASC
猜你喜欢
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 2014-01-21
  • 2013-11-19
  • 2013-08-31
相关资源
最近更新 更多