Tôi muốn biết tại sao tôi không thể đặt giá trị mặc định cho tham số SP datetime để getdate() như sau:Tại sao chúng ta không thể đặt giá trị mặc định của tham số datetime trong stored procedure = getDate()?
Create PROCEDURE [dbo].[UPILog]
(
@UserID bigint,
@ActionID smallint,
@Details nvarchar(MAX) = null,
@Created datetime = getdate()
)
nếu tôi cố gắng tiết kiệm nó sẽ cho tôi một lỗi biên dịch
Msg 102, Level 15, State 1, Procedure UPILog, Line XX
Incorrect syntax near '('.
EDIT: tôi biết rằng tôi có thể làm điều đó như dưới đây
Create PROCEDURE [dbo].[UPILog]
(
@UserID bigint,
@ActionID smallint,
@Details nvarchar(MAX) = null,
@Created datetime = null
)
AS
if @Created is null
SET @Created=getdate() ...
lý do tại sao tôi không thể sử dụng nó .. sẽ không dễ dàng để động cơ sql làm? –
Có giải thích tại sao nó không thể chấp nhận điều này .. hoặc nó giống như quy tắc SQL SERVER không thể gọi hàm là tham số mặc định –
nó phải là một giá trị không đổi. –