这样写对吗?
CREATE PROCEDURE quote
  @newsid varchar(50),
  @CardNO varchar(50),
  @tmpfulltime varchar(50),
  @link varchar(50)
ASif exists (select * from quote where NewsID=@newsid and prCardNO=@CardNO)
update quote set Link=@link,pastedate=getdate() where NewsID=@newsid and prCardNO=@CardNO
else
insert into quote (ID,NewsID,Link,prCardNO) values (@tmpfulltime,@newsid,@link,@CardNO)       
GO

解决方案 »

  1.   

    语法是对的!你插入的时候没有把pastedate列出来,你要对pastedate加默认值如为getdate()
    你的exists(select * ....)改为exists(select 1 ....) 要好一点点点点CREATE PROCEDURE quote
      @newsid varchar(50),
      @CardNO varchar(50),
      @tmpfulltime varchar(50),
      @link varchar(50)
    ASif exists (select 1 from quote where NewsID=@newsid and prCardNO=@CardNO)
    update quote set Link=@link,pastedate=getdate() where NewsID=@newsid and prCardNO=@CardNO
    else
    insert into quote (ID,NewsID,Link,prCardNO) values (@tmpfulltime,@newsid,@link,@CardNO)       
    GO
      

  2.   

    返回多个结果集,前端应该可以处理多个结果集。ADO好像可以的。
      

  3.   

    哈哈我想起来了是:ado的NextRecordset方法!!!!!!!
      

  4.   

    Dim cmd As New ADODB.Command
    Dim rs As ADODB.Recordset    Cmd.ActiveNonnection = "DSN=MySamples;UID=sa"
    Cmd.CommandText = "MyNextProc"
    Cmd.CommandType = adCmdStoredProcSet rs = Cmd.Execute()
    While Not rs Is Nothing
        If (Not rs.EOF) Then
            Debug.Print rs(0)
        End If
        Set rs = rs.NextRecordset()
    Wend