使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

尝试将数据插入自定义表时,或运行将数据插入自定义表中的进程时,将收到如下所示的错误消息:

访问TableName ( (时发生以下) 错误



:1088, "42000",[Microsoft][ODBC SQL Server Driver][SQL Server]找不到对象"NAVDBName.dbo"。 SQL ServerCompanyName$ TableName",因为它不存在或您没有权限。





SQL:SET IDENTITY_INSERT"NAVDBName"。"dbo"."CompanyName$ TableName" ON

注意 此示例中 ,TableName 表示客户的 Microsoft Dynamics NAV 表。 NAVDBName 表示客户的 Microsoft Dynamics NAV 数据库名称。 CompanyName 表示 Microsoft Dynamics NAV 中客户指定的公司名称。



使用数据库数据库选项的 Microsoft Dynamics NAV 版本Microsoft SQL Server此问题。

原因

如果满足以下条件,则会出现此问题:

  • 在错误消息中指示的表中的一个字段中,AutoIncrement 属性设置为"是"。

  • 使用的 INSERT 操作显式填充 AutoIncrement 属性设置为"是"的字段。

  • 没有以下权限之一:

    • SQL Server 中的 SYSADMIN 服务器角色SQL Server

    • Microsoft db_owner NAV 数据库的数据库角色成员身份

    • Microsoft db_ddladmin NAV 数据库的数据库角色成员身份

解决方法

若要解决此问题,请使用以下方法之一。

方法 1


修改 INSERT 操作,以便它不会填充将 AutoIncrement 属性设置为"是"的字段。

方法 2

将相关字段的 AutoIncrement 属性设置为"否"。

注意 方法 1 和方法 2 可能需要 Microsoft Dynamics NAV 开发人员的帮助,尤其是当修订需要更改代码时。 在将更改应用到实时 Microsoft Dynamics NAV 数据库之前,应全面测试此类更改。

方法 3

向相关应用程序角色授予自定义表的 Alter 权限 (例如,&ndo$shadow(如果在 SQL Server Management Studio 中选择了"标准") 模型)。


注意 在 Microsoft Dynamics NAV 中运行安全同步时,会覆盖SQL Server Management Studio中手动授予表的权限。 因此,运行安全同步后,必须再次向自定义表授予 Alter 权限。

更多信息

在 Microsoft Dynamics NAV 中,如果整数 数据类型 字段或 BigInteger 数据类型 字段的 AutoIncrement 属性设置为"是",则相关字段应当由系统生成的唯一整数值自动填充。 用于填充字段的值会针对插入的每个新记录连续递增。

若要实现 AutoIncrement 属性,Microsoft Dynamics NAV SQL Server具有关联的 IDENTITY 属性的列。 IDENTITY 属性会导致SQL Server如前文所述自动填充列。 如果为特定列SQL Server IDENTITY 属性,则用户无法在 INSERT 语句中显式填充相关列,除非用户具有以下权限之一:

  • SQL Server 中的 SYSADMIN 服务器角色SQL Server

  • Microsoft db_owner NAV 数据库的数据库角色成员身份

  • Microsoft db_ddladmin NAV 数据库的数据库角色成员身份

除了拥有这些权限外,用户还必须运行以下命令,以便完成 INSERT 操作。

SET IDENTITY_INSERT <table_name>出现"症状"部分中提到的错误消息时,Microsoft Dynamics NAV 尝试在 SQL Server 中运行此 SET 语句。

显式填充具有 IDENTITY 属性的列的方法是通常不需要的方法。 通常,具有 IDENTITY 属性的列会自动填充SQL Server。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×