ฉันลองเปลี่ยนค่าพารามิเตอร์เริ่มต้นด้วยสิ่งนี้:
ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()
และ SQL pre-compiler ทั้งหมดให้ฉันคือข้อผิดพลาดนี้:
ข่าวสารเกี่ยวกับ 102, ระดับ 15, สถานะ 1, ขั้นตอน my_sp, บรรทัดที่ 8 ไวยากรณ์ไม่ถูกต้องใกล้ '('.
ฉันได้สร้างขั้นตอนแล้ว (ฉันไม่แน่ใจว่าเกี่ยวข้องหรือไม่) ฉันใช้ค่าเริ่มต้นที่เป็นโมฆะและตรวจสอบในภายหลัง แต่ดูเหมือนจะไม่เหมาะสม ฉันสามารถทำสิ่งนี้ในบรรทัดเดียวได้หรือไม่?
อัปเดต: ฉันกำลังจะออกจากคำอธิบายของ MSDN เกี่ยวกับพารามิเตอร์ขั้นตอนการจัดเก็บ :
[= default] เป็นค่าเริ่มต้นสำหรับพารามิเตอร์ หากกำหนดค่าดีฟอลต์ฟังก์ชันสามารถดำเนินการได้โดยไม่ต้องระบุค่าสำหรับพารามิเตอร์นั้น
หมายเหตุ:
ค่าพารามิเตอร์ดีฟอลต์สามารถระบุได้สำหรับฟังก์ชัน CLR ยกเว้นชนิดข้อมูล varchar (max) และ varbinary (max)เมื่อพารามิเตอร์ของฟังก์ชันมีค่าดีฟอลต์คีย์เวิร์ด DEFAULT จะต้องถูกระบุเมื่อฟังก์ชันถูกเรียกเพื่อดึงค่าดีฟอลต์ ลักษณะการทำงานนี้แตกต่างจากการใช้พารามิเตอร์ที่มีค่าดีฟอลต์ในโพรซีเดอร์ที่เก็บไว้ซึ่งการละเว้นพารามิเตอร์ยังหมายถึงค่าดีฟอลต์ด้วย
ฉันอ่านผิดหรือเปล่า?
ขอบคุณมาก.