Tôi đã thử thay đổi giá trị tham số mặc định bằng:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
và tất cả các trình biên dịch trước SQL đã cung cấp cho tôi lỗi này:
Msg 102, Mức 15, Trạng thái 1, Thủ tục my_sp, Dòng 8 Cú pháp không chính xác gần '('.
Tôi đã tạo thủ tục. (Tôi không chắc liệu điều đó có liên quan hay không.) Tôi đang sử dụng giá trị mặc định null và kiểm tra điều đó sau đó, nhưng điều đó có vẻ không đúng. Tôi có thể làm điều này trong một dòng không?
Cập nhật: Tôi đã tắt mô tả của MSDN về các tham số thủ tục được lưu trữ :
[= default] Là giá trị mặc định cho tham số. Nếu giá trị mặc định được xác định, hàm có thể được thực thi mà không cần chỉ định giá trị cho tham số đó.
Lưu ý:
Giá trị tham số mặc định có thể được chỉ định cho các hàm CLR ngoại trừ kiểu dữ liệu varchar (max) và varbinary (max).Khi một tham số của hàm có giá trị mặc định, từ khóa DEFAULT phải được chỉ định khi hàm được gọi để lấy giá trị mặc định. Hành vi này khác với việc sử dụng các tham số có giá trị mặc định trong các thủ tục được lưu trữ trong đó việc bỏ qua tham số cũng ngụ ý giá trị mặc định.
Tôi đang đọc sai?
Cảm ơn nhiều.