ALTER procedure [dbo].[sp_AddUser]
@UserName varchar(20),
@Pwd varchar(50),
@Email varchar(20)
as
declare @RoleID int
begin
set @RoleID='1'
insert into t_User(RoleID,UserName,Pwd,Email,RegDate) values(@RoleID,@UserName,@Pwd,@Email,GetDate())
end
GO
我想在每插入一条用户的时候自动插入当前注册时间,但是没起到作用,哪里出了问题?

解决方案 »

  1.   

    sql Server对大小写不敏感
    gEtdAte()照样可以。。
      

  2.   

    我昏,你都没执行,getDate()怎么会生效
      

  3.   

    你看一下你的RegDate是类型是不是日期类型
    我的做法是在RegDate里加一个默认日期.这样就不用在程序里写
      

  4.   

    Create/alter procedure [dbo].[sp_AddUser]
    @UserName varchar(20),
    @Pwd varchar(50),
    @Email varchar(20)
    as
    declare @RoleID int
    begin
    set @RoleID='1'
    insert into t_User(RoleID,UserName,Pwd,Email,RegDate) values(@RoleID,@UserName,@Pwd,@Email,GetDate())
    end
    GO
    这是创建/修改了一个存储过程,不会产生任务数据记录
      

  5.   

    1. 查看一下 字段类型 对不对
    2. 可以考虑跟踪一下
    3. BS一下你啊,存储过程的名称居然sp_开头
      

  6.   

    调用这个存储的时候等同于下面的
    declare @RoleID intset @RoleID='1'
    insert into t_User(RoleID,UserName,Pwd,Email,RegDate) values(@RoleID,'aaa','bbb','ccc',GetDate())
    只是会将你的参数换成具体你传入的值,你可以把上面这段直接放查询分析器中运行。。调用存储的时候是会插入时间的。。记得没调用没有记录
      

  7.   

    现在csdn没几年前来得实在了,我刚回个问题,别人都不知道对的错的,全部抄一次发上来,看着有些不爽,没以前好了纯为了那点分。。为了分乱来。。
      

  8.   

    执行一下啊,这个过程没看出有问题
    exec sp_AddUser 'admin','admin','[email protected]'
      

  9.   

    exec sp_AddUser 'username','userpwd','[email protected]
    执行就OK了啊
      

  10.   

    我记得貌似SQL有个bug的,2000里,好像就是存储过程里没法用getDate()取得当前日期,会报错,不知道是不是??反正肯定有类似的事
      

  11.   

    我用sql 2000和2005三四年了,经常在存储里写那,是没有问题的。写方法才有问题。。
      

  12.   

    楼主们已经说清了,创建一个存储过程,就像你会说话,你不说等于话没说出来,没执行,最好不以SP开头,这是系统存储过程才这样,建立SP_开头的在其它库你也可以调用
      

  13.   

    sql&&在啊! 顶!! 他说的肯定是对的!!