CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

创建"存储过程"的参数为 DateTime 时, 如何设置默认值?

楼主Garfield37(加菲猫)2006-10-02 18:06:46 在 MS-SQL Server / 基础类 提问

设置不了默认值.   提示语法错误..   去掉()也不行.  
  @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

相关问题

关键词

得分解答快速导航

  • 帖主:Garfield37

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo