declare @aa varchar(9)
select @aa = select count(*) from table1

解决方案 »

  1.   

    变量前必须加上@符号。这样:declare @aa int
    select @aa=count(*) from table1
    然后就可以直接使用@aa了:

    insert into total set field1=@aa where...
      

  2.   

    带返回值的存储过程,D. 使用 OUTPUT 参数
    OUTPUT 参数允许外部过程、批处理或多条 Transact-SQL 语句访问在过程执行期间设置的某个值。下面的示例创建一个存储过程 (titles_sum),并使用一个可选的输入参数和一个输出参数。首先,创建过程: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接下来,将该 OUTPUT 参数用于控制流语言。 
      

  3.   

    过程里加入
    declare @aa int
    select @aa = count(*) from td_purchase_mprint @aa