select @count= count(id) FROM address WHERE address = @addressINSERT INTO address (address) VALUES @address

解决方案 »

  1.   

    写得基本正确
    只是IF ELSE的语法不对。
    我给你改了一下
    CREATE PROCEDURE exec_address
    @count int,@address varchar(300)
    AS
    begin
    select @count=(SELECT count(id) FROM address WHERE (address = @address))
    if @count>0 
    UPDATE address SET COUNT = COUNT + 1 WHERE address = @address
    else
    INSERT INTO address (address) VALUES (@address)end
      

  2.   

    多谢,但为什么还是不好用呢?
    总是提示我在ELSE附近有语法错误.
      

  3.   

    不要用@count,因为它是查询出来的而不是输入参数
    CREATE PROCEDURE exec_address
    @address as varchar(300)
    AS
    if (SELECT count(id) 
    FROM address WHERE (address = @address))>0
    UPDATE address SET COUNT = COUNT + 1 WHERE address = @address
    else
    INSERT INTO address (address) VALUES (@address)