名为shui的SQL Server 2000数据库中,有一存储过程
CREATE PROCEDURE xialiang
@zcm nvarchar(6),
@sj numeric(3,2),
@xlrq datetime,
@qs int,
@zs int,
@xlsl int
 AS
insert xlb (zcm,sj,xlrq,qs,zs,xlsl) values (@zcm,@sj,@xlrq,@qs,@zs,@xlsl)
GO当在查询分析器里执行下面两行时
use shui
exec xialiang '136793',2,getdate(),178,180,2
出现错误:
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: ')' 附近有语法错误。

解决方案 »

  1.   

    但是执行的两行改成下面就能执行:
    use shui 
    exec xialiang '136793',2,'2008-1-1',178,180,2 
    只是把getdate()换了
      

  2.   

    use shui 
    go
    declare @dt datetime
    set @dt=getdate()exec xialiang '136793',2,@dt,178,180,2 
      

  3.   

    use shui 
    exec xialiang '136793',2,select getdate(),178,180,2   
      

  4.   

    设置 xlrq 的默认值为 getdate()
    插入语句中去掉它.
    存储过程传递时不用该参数.
      

  5.   

    use shui 
    declare @t datetime
    set @t=getdate()
    exec xialiang '136793',2,@t,178,180,2 
      

  6.   

    CREATE PROCEDURE xialiang 
    @zcm nvarchar(6), 
    @sj numeric(3,2), 
    @xlrq datetime default getdate(), 
    @qs int, 
    @zs int, 
    @xlsl int 
    AS 
    insert xlb (zcm,sj,qs,zs,xlsl) values (@zcm,@sj,@qs,@zs,@xlsl) 
    GO 
      

  7.   

    换个时间函数呢?
    exec xialiang '136793',2,Current_Timestamp,178,180,2 
      

  8.   


    use shui 
    exec xialiang '136793',2,convert(nvarchar,getdate(),112),178,180,2