创建"存储过程"的参数为 DateTime 时, 如何设置默认值?
设置不了默认值. 提示语法错误.. 去掉()也不行.
@JoinDate datetime = GetDate()
-- 添加用户
Create Proc AddUser
@Name varchar(12), --用户名
@EMP varchar(8)='', --职业
@JoinDate datetime = GetDate() --日期
As
if ((Select Count([Name]) From Misty_User Where [Name] = @Name) = 0)
begin
insert into Misty_User([Name], EMPID)
Select @Name, EMPID
From Misty_UserEMP
Where Misty_UserEMP.[Name] = @EMP
end
else
print '已存在相同用户'
GO
问题点数:20、回复次数:5Top
1 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-10-02 18:29:05 得分 0
存储过程参数:默认值必须是常量或 NULL。Top
2 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-10-02 18:30:03 得分 0
字段默认值可以设值为getdate()。
而存储过程中:
如果定义了默认值,不必指定该参数的值即可执行过程。
默认值必须是常量或 NULL。
如果过程将对该参数使用 LIKE 关键字,那么默认值中可以包含通配符(%、_、[] 和 [^])。Top
3 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-10-02 18:30:44 得分 0
如果想用getdate()作为参数默认值,可以变通处理。
if @JoinDate is null
set @JoinDate =getdate()Top
4 楼Garfield37(加菲猫)回复于 2006-10-02 18:51:57 得分 0
晕.. 帮助我看了哦..
但我想实现一模一样的效果.
这样做的时候就转了个弯, 代码不够简洁.
有何办法在定义参数默认值时就直接设成 当前日期?
设置了默认值的参数可选的啊. 如果不设默认值就不可选了.
转了个弯. 不是最好的解决方法,不过也是一种解决方法, 先谢了Top
5 楼Garfield37(加菲猫)回复于 2006-10-02 18:58:03 得分 0
不过你也说得很对...
不学就为过..
的确, 我学SQL时那段时间天天睡觉..
现在要做项目才翻书看呢.
非常非常吃力啊..
Top




