上面的sql语句是我看sql 帮助文档时看到的,完整的如下:
Use OUTPUT parameters
OUTPUT parameters allow an external procedure, a batch, or more than one Transact-SQL statements to access a value set during the procedure execution. In this example, a stored procedure (titles_sum) is created and allows one optional input parameter and one output parameter.First, create the procedure:USE pubs
GO
IF EXISTS(SELECT name FROM sysobjects
      WHERE name = 'titles_sum' AND type = 'P')
   DROP PROCEDURE titles_sum
GO
USE pubs
GO
CREATE PROCEDURE titles_sum @@TITLE varchar(40) = '%', @@SUM money OUTPUT
AS
SELECT 'Title Name' = title
FROM titles 
WHERE title LIKE @@TITLE 
SELECT @@SUM = SUM(price)
FROM titles
WHERE title LIKE @@TITLE
GO

解决方案 »

  1.   

    仅是为避免混淆与系统函数,建议不要使用以 @@ 开始的名称,如果你不怕混淆,也可以用declare @@@@@@@@@id intset @@@@@@@@@id = 1select @@@@@@@@@id
    ----------- 
    1(所影响的行数为 1 行)
      

  2.   

    这个不是我用的,其实要是我用也用一个@,而不用@@,关键这个是在sql帮助文档中看到 的,
    想人家微软写个文档做示例,总有一定代表性吧,不应该是随便写写这么简单吧!
    这个示例是在sql2000的联机帮助中的 create procedure中给出的.
      

  3.   

    只是个例子的话,id都可以不要哈declare @@@@@ int
    set @@@@@=1
    select @@@@@