当您试图填充数据库专业人士的 SQL Server 2000 表与 Visual Studio 2005 团队版中的数据生成计划时,您可能会收到一条错误消息:"System.Data.SqlClient.SqlError: 不允许从数据类型 nte 隐式转换

文章编号: 928965 - 查看本文应用于的产品
展开全部 | 关闭全部

本页

症状

试图填充数据库专业人士的 Microsoft SQL Server 2000 表与 Microsoft Visual Studio 2005 团队版中的数据生成计划时,您可能会收到类似于以下内容的错误消息:
TableName: System.Data.SqlClient.SqlError: 禁止从到的隐式转换数据类型 ntext 数据类型 varchar 表 ' TableNameColumnName 列。若要运行此查询使用 CONVERT 函数。
注意当您试图填充为 varcharnvarchar 字段包含超过 4000 个字符的字段时,会出现此问题。

原因

出现此问题的原因是 SqlClient 提供程序将转换为一个 文本varcharnvarchar 数据类型或 ntext 数据类型。但是,您不能将一个 文本ntext 数据类型转换为一个 varcharnvarchar 数据类型 SQL Server 2000 中。

注意在 Microsoft SQL Server 2005 年,SqlClient 提供程序,请使用 文本ntext 数据类型 instead of 的一个 varchar(max)nvarchar(max) 数据类型。因此,SQL Server 2005 中不会发生此问题。

替代方法

若要变通解决此问题,请确保 varchar SQL Server 2000 数据库中的列不包含超过 4000 个字符。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

重现此问题的步骤

  1. 启动 Microsoft Visual Studio 2005。
  2. 文件 菜单上指向 新建,然后单击 项目
  3. 展开 数据库项目,然后单击 $ Microsoft SQL Server
  4. 单击 SQL Server 2000,请在 名称 框中键入 Database1,然后单击 确定
  5. 在解决方案资源管理器中,展开 架构对象、 右击 、 单击 添加,然后单击 表格
  6. 名称 框中键入 MaxVarChar,然后单击 添加
  7. dbo.MaxVarChar.table.sql 文件中的将代码替换下面的代码示例。
    CREATE TABLE [dbo].[MaxVarChar]
    (
    [VarChar_maxLength] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CS_AS NULL
    ) ON [PRIMARY]
  8. 数据 菜单上指向 T-SQL 编辑器,然后单击 执行 SQL
  9. 连接到数据库 对话框中单击 连接 列表中的数据库连接,然后单击 确定
  10. 在解决方案资源管理器中,用鼠标右键单击 数据生成计划,指向 添加,然后再单击 数据生成计划
  11. 名称 框中键入 DataGenerationPlan1.dgen,然后单击 添加
  12. 单击以选中 dbo.MaxVarChar 复选框。
  13. 数据 菜单上指向 数据生成器,然后单击 生成数据

    注意如果单击 要清除选定的表中的内容之前插入新行吗?,将出现对话框。
  14. 连接到数据库 对话框中单击 连接 列表中的数据库连接,然后单击 确定

    您收到"症状"部分中提到的错误消息。

属性

文章编号: 928965 - 最后修改: 2006年12月13日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Visual Studio 2005 Team Edition for Database Professionals
关键字:?
kbmt kbtshoot kbpubtypekc kberrmsg kbprb KB928965 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 928965
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈