SQL查询在存储过程中获取计数

时间:2010-03-16 14:00:27

标签: sql stored-procedures

所以我需要弄清楚如何获取记录计数值并将该计数用作插入表中的新值。

  

Ex:在我的存储过程中

@Count int

我在寻找什么

@Count等于“_fieldName描述从_someTable顺序中选择top(1)_fieldName”

最后

插入_newTable(_fieldName)值(@Count)

  

结束

我不必使用变量,只是试图展示我真正想要做的事情。我的SQL知识非常有限,所以不要笑,也不要傻笑! ;)

5 个答案:

答案 0 :(得分:1)

在SQL SERVER中

       DECLARE @Count INT
        SET @COUNT = SELECT COUNT(*) FROM SomeTable
        insert into newTable (fieldName) values (@Count)

     OR


      INSERT INTO newTable (fieldName)
      SELECT COUNT(*) FROM SomeTable

答案 1 :(得分:1)

您应该使用INSERT-SELECT。这是INSERT,它使用从SELECT返回的所有行作为要插入的值。所以尝试这样的东西(SQL Server示例代码):

DECLARE @TableToCount  table (fieldName varchar(5))
INSERT INTO @TableToCount VALUES ('A')
INSERT INTO @TableToCount VALUES ('B')
INSERT INTO @TableToCount VALUES ('C')

DECLARE @TableToStore  table (fieldName int)

INSERT INTO @TableToStore
    (fieldName)
    SELECT 
        COUNT(fieldName)
        FROM @TableToCount

SELECT * FROM @TableToStore

输出:

fieldName
-----------
3

(1 row(s) affected)

答案 2 :(得分:0)

不确定哪个数据库,所以我会写Sybasish。

declare @count int
select @int = count (1) from  ... the rest of your query
insert another_table values (@count, 'other_field')

答案 3 :(得分:0)

如果您使用的是SQL Server,那么为什么不使用@@ROWCOUNT

答案 4 :(得分:0)

我正在寻找的是存储过程中插入的标识。一会儿完成这个,但想发布最终答案。

SELECT SCOPE_IDENTITY()