[英]SQL Server - Assign default DateTime value to parameters in Stored Procedure
也许我在这里是个白痴,但我正在尝试将默认的DateTime值分配给MS SQL Server 2005中的存储过程,但无法使其工作,例如:
CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,
@MyDateTime DATETIME = CONVERT(DATETIME, '1753-01-01 00:00:00', 20)
)
AS
BEGIN ... (snip)
因此,如果未指定@MyDateTime
输入参数,默认情况下应使用'1753-01-01 00:00:00',但是我收到错误...
Incorrect syntax near the keyword 'CONVERT'.
我可以让它为Integers工作就好了。 我究竟做错了什么?
编辑:从下面的答案中,我最终在Sproc本身内部进行了以下操作:
CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,
@MyDateTime DATETIME = NULL
)
AS
BEGIN
SET NOCOUNT ON
SET @MyDateTime = COALESCE(@MyDateTime, CONVERT(DATETIME, '1753-01-01 00:00:00', 20))
...snip...
END
@MyDateTime DATETIME ='1753-01-01 00:00:00'
或者在sproc内你可以这样做:
SELECT @MyDateTime = (SELECT CONVERT(DATETIME, '1753-01-01 00:00:00', 20))
该错误是由于调用CONVERT,在默认参数时您无法执行此操作。
你不能在那里调用CONVERT()函数,只需使用相关的日期时间字符串分配默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.