2010-03-16 56 views
0

因此,我需要弄清楚我如何获得记录计数值并将该计数用作插入表中的新值。SQL查询以获得存储过程中的计数

例如:在我的存储过程

@count INT

什么即时寻找

@count等于“选择顶(1)从_someTable _fieldName order by _fieldName Desc“

最后

INSERT INTO _newTable(_fieldName)值(@count)

我没有使用一个变量,只是想证明什么我真的想做。我的SQL知识非常有限,所以不要笑,或者傻笑! ;)

回答

0

如果您正在使用SQL Server,那么为什么不使用@@ROWCOUNT

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 
0

不知道哪个数据库,所以我会写Sybasish。

declare @count int 
select @int = count (1) from ... the rest of your query 
insert another_table values (@count, 'other_field') 
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 

OUTPUT:

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

(1 row(s) affected) 
0

什么,我一直在寻找是存储过程中插入的身份。完成这一段时间后,但想发布最终答案。

SELECT SCOPE_IDENTITY()