Khắc phục: "không có chức năng ' {urn:schemas-microsoft-com:xml-sql}:variable()" lỗi với một truy vấn XQuery Cập Nhật giá trị của một cột XML trong SQL Server 2005, SQL Server 2008 hay trong SQL Server 2008 R2

Áp dụng cho: SQL Server 2008 R2SQL Server 2008Microsoft SQL Server 2005

Microsoft phân phối Microsoft SQL Server 2005, Microsoft SQL Server 2008 hay Microsoft SQL Server 2008 R2 bản sửa lỗi như là một tải về tệp. Bởi vì các bản sửa lỗi tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2005, SQL Server 2008 hay SQL Server 2008 R2 sửa chữa phát hành.

Triệu chứng


Khi bạn chạy một truy vấn XQuery để cập nhật giá trị của một cột XML trong Microsoft SQL Server 2005, Microsoft SQL Server 2008 hay Microsoft SQL Server 2008 R2, truy vấn XQuery không chạy. Ngoài ra, bạn nhận được thông báo lỗi tương tự như sau:
Lỗi ' không có chức năng ' {urn:schemas-microsoft-com:xml-sql}:variable()'
Ví dụ: truy vấn sau đây Cập Nhật giá trị cột TestCol chạy:
use test DECLARE @TestIdentity INT SET @TestIdentity = 100 UPDATE dbo.TestTable SET TestCol.modify('replace value of (/ROOT/b/@ID)[1] with sql:variable("@TestIdentity")') FROM dbo.TestTable2 tbl2 INNER JOIN dbo.TestTable tbl ON tbl2.aID = tbl.aID And tbl2.bID = @TestIdentity
Lưu ý Để khắc phục sự cố này, bạn có thể phải khởi động lại phiên bản SQL Server 2005 hoặc SQL Server 2008.

Giải pháp


Thông tin Cập Nhật tích luỹ

SQL Server 2008 R2 gói dịch vụ 1

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Update 6 cho SQL Server 2008 R2 gói dịch vụ 1. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2679367 Bản Cập Nhật tích lũy gói 6 cho SQL Server 2008 R2 gói dịch vụ 1
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2567616 SQL Server 2008 R2 Phiên bản được phát hành sau khi SQL Server 2008 R2 gói dịch vụ 1

SQL Server 2008 R2

Sửa chữa cho vấn đề này lần đầu tiên được phát hành 13 bản Cập Nhật tích luỹ. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này dành cho SQL Server 2008 R2, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2679366 Gói Cập Nhật tích luỹ 13 cho SQL Server 2008 R2
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
981356 SQL Server 2008 R2 xây dựng mà đã được phát hành sau khi SQL Server 2008 R2

SQL Server 2008 gói dịch vụ 3

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Cập Nhật 4 cho SQL Server 2008 gói dịch vụ 3. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2673383 Bản Cập Nhật tích lũy gói 4 cho SQL Server 2008 gói dịch vụ 3
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2629969 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 3
Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 3 cho việc cài đặt SQL Server 2008 gói dịch vụ 3. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2008 R2 gói dịch vụ 1

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Cập Nhật 4 cho SQL Server 2008 R2 gói dịch vụ 1. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2633146 Gói Cập Nhật tích luỹ 4 cho SQL Server 2008 R2 gói dịch vụ 1
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2567616 SQL Server 2008 R2 Phiên bản được phát hành sau khi SQL Server 2008 R2 gói dịch vụ 1

SQL Server 2008 R2

Sửa chữa cho vấn đề này lần đầu tiên được phát hành 11 Cập Nhật tích luỹ. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này dành cho SQL Server 2008 R2, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2633145 Gói Cập Nhật tích luỹ 11 cho SQL Server 2008 R2
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
981356 SQL Server 2008 R2 xây dựng mà đã được phát hành sau khi SQL Server 2008 R2

SQL Server 2008 gói dịch vụ 2

Sửa chữa cho vấn đề này được phát hành đầu tiên 7 Cập Nhật tích luỹ cho SQL Server 2008 gói dịch vụ 2. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2617148 Bản Cập Nhật tích lũy gói 7 cho SQL Server 2008 gói dịch vụ 2
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2402659 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 2
Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 2 để cài đặt SQL Server 2008 gói dịch vụ 2. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2008 gói dịch vụ 1

Sửa chữa cho vấn đề này được phát hành đầu tiên 16 Cập Nhật tích luỹ cho SQL Server 2008 gói dịch vụ 1. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2582282 Gói Cập Nhật tích luỹ 16 cho SQL Server 2008 gói dịch vụ 1
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
970365 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 1
Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 1 cho cài đặt SQL Server 2008 gói dịch vụ 1. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2008 R2 gói dịch vụ 1

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Update 1 cho SQL Server 2008 R2 gói dịch vụ 1. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2544793 Gói Cập Nhật tích luỹ 1 dành cho SQL Server 2008 R2 gói dịch vụ 1
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2567616 SQL Server 2008 R2 Phiên bản được phát hành sau khi SQL Server 2008 R2 gói dịch vụ 1

SQL Server 2008 gói dịch vụ 1

Sửa chữa cho vấn đề này được phát hành đầu tiên 14 Cập Nhật tích luỹ cho SQL Server 2008 gói dịch vụ 1. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2527187 Gói Cập Nhật tích luỹ 14 cho SQL Server 2008 gói dịch vụ 1
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
970365 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 1
Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 1 cho cài đặt SQL Server 2008 gói dịch vụ 1. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2008 gói dịch vụ 2

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Cập Nhật 4 cho SQL Server 2008 gói dịch vụ 2. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2527180 Bản Cập Nhật tích lũy gói 4 cho SQL Server 2008 gói dịch vụ 2
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2402659 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 2
Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 2 để cài đặt SQL Server 2008 gói dịch vụ 2. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2008 gói dịch vụ 3

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Cập Nhật 4 cho SQL Server 2008 gói dịch vụ 3. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2673383 Bản Cập Nhật tích lũy gói 4 cho SQL Server 2008 gói dịch vụ 3
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2629969 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 3
Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 3 cho việc cài đặt SQL Server 2008 gói dịch vụ 3. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2008 R2

Sửa chữa cho vấn đề này lần đầu tiên được phát hành 7 Cập Nhật tích luỹ. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này dành cho SQL Server 2008 R2, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2507770 Gói Cập Nhật tích luỹ 7 dành cho SQL Server 2008 R2
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
981356 SQL Server 2008 R2 xây dựng mà đã được phát hành sau khi SQL Server 2008 R2

SQL Server 2005 gói dịch vụ 4

Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Update 3 cho SQL Server 2005 gói dịch vụ 4. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2507769 Gói Cập Nhật tích lũy 3 cho SQL Server 2005 gói dịch vụ 4
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2005 vá. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2485757 Phiên bản SQL Server 2005 được phát hành sau khi SQL Server 2005 gói dịch vụ 4
Microsoft SQL Server 2005 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2005 Service Pack 4 cho việc cài đặt SQL Server 2005 gói dịch vụ 4. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

SQL Server 2005 gói dịch vụ 3

Sửa chữa cho vấn đề này được phát hành đầu tiên 15 Cập Nhật tích luỹ cho SQL Server 2005 Service Pack 3. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2507766 Gói Cập Nhật tích luỹ 15 cho SQL Server 2005 Service Pack 3
Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2005 vá. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
960598 Phiên bản SQL Server 2005 được phát hành sau khi SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2005 Service Pack 3 cho việc cài đặt SQL Server 2005 Service Pack 3. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.

Trạng thái


Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Tham khảo


Để biết thêm thông tin về cách truy vấn XML kiểu dữ liệu trong một truy vấn XQuery, ghé thăm website sau của MSDN:Để biết thêm thông tin về mô hình dịch vụ gia tăng dành cho SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
935897 Một mô hình dịch vụ gia tăng có sẵn từ nhóm SQL Server để cung cấp các bản sửa lỗi được báo cáo sự cố
Để biết thêm thông tin về giản đồ đặt tên cho bản Cập Nhật SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
822499 Giản đồ đặt tên mới cho gói cập nhật phần mềm Microsoft SQL Server
Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft