Chúng tôi đang nâng cấp môi trường thử nghiệm của mình với một máy chủ mới và phiên bản cập nhật của Microsoft SQL Server và đã gặp sự cố.
Trên máy chủ mới, mã cũ của chúng tôi sẽ nhận được "hoạt động không được phép khi đối tượng bị đóng" khi thực hiện một số thủ tục được lưu trữ. Thông báo này không bao giờ xuất hiện trên máy chủ cũ. Khi chúng tôi theo dõi nó, vấn đề có thể được giải quyết bằng cách thêm SET NOCOUNT ON;
vào thủ tục được lưu trữ.
Tôi đã xem xét các mặc định trên cơ sở dữ liệu và thấy không có cài đặt nào khác (SQL Server 2008 so với SQL Server 2014) liên quan đến các mặc định.
Tôi nên xem xét cài đặt nào để giải quyết vấn đề này trên toàn cầu mà không cần thêm SET NOCOUNT ON
vào một nghìn procs được lưu trữ?
SET NOCOUNT ON;
vào lúc bắt đầu thủ tục được lưu trữ (sau BEGIN
). Số lượng các thủ tục được lưu trữ không thực sự là một vấn đề.
BEGIN
- thật hay, nhưng không bắt buộc.
SET NOCOUNT ON;
, luôn luôn.