Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Khi bạn tìm cách chèn dữ liệu vào bảng tùy chỉnh hoặc khi bạn chạy quy trình chèn dữ liệu vào bảng tùy chỉnh, bạn nhận được thông báo lỗi tương tự như sau:

Lỗi sau SQL Server xảy ra trong khi truy nhập bảng TableName:



1088, "42000",[Microsoft][ODBC SQL Server Driver][SQL Server]Không thể tìm thấy đối tượng "NAVDBName.dbo.CompanyName$ TableName" vì nó không tồn tại hoặc bạn không có quyền.



SQL: SET

IDENTITY_INSERT "NAVDBName"." dbo"." CompanyName$ TableName" ON

Lưu ý Trong ví dụ này, TableName đại diện cho bảng Microsoft Dynamics NAV của khách hàng. NAVDBName đại diện cho tên cơ sở dữ liệu Microsoft Dynamics NAV của khách hàng. CompanyName đại diện cho tên công ty được chỉ định của khách hàng trong Microsoft Dynamics NAV.



Sự cố này có thể xảy ra trong các phiên bản Microsoft Dynamics NAV sử dụng tùy chọn cơ Microsoft SQL Server dữ liệu mới.

Nguyên nhân

Sự cố này sẽ xảy ra nếu các điều kiện sau là đúng:

  • Ở một trong các trường trong bảng được chỉ báo trong thông báo lỗi, thuộc tính AutoIncrement được đặt thành Yes.

  • Thao tác INSERT bạn sử dụng sẽ nhập rõ ràng trường có thuộc tính AutoIncrement được đặt thành Yes.

  • Bạn không có một trong các quyền sau đây:

    • Tư cách thành viên vai trò máy chủ SYSADMIN trong SQL Server

    • Tư cách db_owner cơ sở dữ liệu Người dùng nội bộ cho cơ sở dữ liệu Microsoft Dynamics NAV

    • Tư cách db_ddladmin cơ sở dữ liệu Người dùng nội bộ cho cơ sở dữ liệu Microsoft Dynamics NAV

Giải pháp

Để giải quyết sự cố này, sử dụng một trong các phương pháp sau.

Phương pháp 1


Sửa đổi thao tác INSERT để thao tác này không đưa vào trường có thuộc tính AutoIncrement được đặt thành Yes.

Phương pháp 2

Đặt thuộc tính AutoIncrement thành No cho trường liên quan.

Lưu ý Cả Phương pháp 1 và Phương pháp 2 có thể yêu cầu sự hỗ trợ của nhà phát triển Microsoft Dynamics NAV, đặc biệt khi bản sửa đổi yêu cầu thay đổi mã. Những thay đổi này cần được kiểm tra kỹ trước khi bạn áp dụng các thay đổi cho cơ sở dữ liệu Microsoft Dynamics NAV trực tiếp.

Phương thức 3

Cấp quyền Alter cho bảng tùy chỉnh đối với vai trò ứng dụng liên quan (ví dụ: &ndo$shadow, nếu bạn đã chọn mô hình bảo mật Tiêu chuẩn) trong SQL Server Management Studio.


Lưu ý Các quyền được cấp thủ công cho các bảng từ SQL Server Management Studio sẽ được ghi đè khi bạn chạy đồng bộ hóa bảo mật trong Microsoft Dynamics NAV. Do đó, bạn phải cấp lại quyền Alter đối với bảng tùy chỉnh sau khi bạn chạy đồng bộ hóa bảo mật.

Thông tin Bổ sung

Trong Microsoft Dynamics NAV, nếu thuộc tính AutoIncrement được đặt thành Có cho trường kiểu dữ liệu Số nguyên hoặc cho trường kiểu dữ liệu BigInteger, trường liên quan sẽ được hệ thống tự động nhập vào một giá trị số nguyên duy nhất do hệ thống tạo ra. Giá trị được dùng để nhập vào trường tăng dần liên tiếp cho mỗi bản ghi mới được chèn.

Để triển khai thuộc tính AutoIncrement, Microsoft Dynamics NAV xác định SQL Server cột có thuộc tính IDENTITY được liên kết. Thuộc tính IDENTITY khiến cột SQL Server tự động nhập vào cột như mô tả ở phần trước. Nếu thuộc tính IDENTITY được bật cho cột SQL Server thì người dùng sẽ không thể nhập rõ cột liên quan vào câu lệnh INSERT trừ khi người dùng có một trong các quyền sau đây:

  • Tư cách thành viên vai trò máy chủ SYSADMIN trong SQL Server

  • Tư cách db_owner cơ sở dữ liệu Người dùng nội bộ cho cơ sở dữ liệu Microsoft Dynamics NAV

  • Tư cách db_ddladmin cơ sở dữ liệu Người dùng nội bộ cho cơ sở dữ liệu Microsoft Dynamics NAV

Ngoài việc có những quyền này, người dùng cũng phải chạy lệnh sau đây để có thể hoàn tất thao tác INSERT.

SET IDENTITY_INSERT <table_name> ONKhi thông báo lỗi được đề cập trong mục "Triệu chứng" xảy ra, Microsoft Dynamics NAV đang cố gắng chạy câu lệnh SET này trong SQL Server.

Phương pháp nhập rõ ràng cột có thuộc tính IDENTITY là phương pháp thường không bắt buộc. Các cột có thuộc tính IDENTITY thường được nhập tự động bằng cách nhập SQL Server.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×