2012-05-30 49 views
0

我需要使用存儲過程,它看起來像這樣將數據插入到另一個表中的數據:使用存儲過程來插入從選擇

CREATE PROCEDURE T.countnum 
AS 
    Insert into T1 values(select count(*) from T.countTable) 

但它不工作,我看見幾個例子,但不與選擇。任何示例?

回答

1
use db; 
CREATE PROCEDURE T.countnum 
AS 
Insert into T1 ([column_name]) 
select count(*) 
from T.countTable 
go 

use db; 
CREATE PROCEDURE T.countnum 
AS 

declare @counting int 

select @counting = count(*) 
from T.countTable 

Insert into T1 ([column_name]) values (@counting) 

go 

你應該指定列數一樣 select count(id) from T.countTable

+1

如果您只想計算集合中的總行數,沒有理由不使用COUNT(*)。 –

+0

如果列「id」與「PK」不爲空,那麼結尾是一樣的。但是,你是對的,它更容易理解count(*)!= count(id)如果「id」爲空值。 – jjchiw

0

你可以嘗試:

Insert into T1(CountColumn) 
select count(*) from T.countTable 
0

這是語法:

INSERT INTO MyTable 
( 
    Column1, 
    Column2 
) 
EXEC [dbo].[yourStoredProcName] 
1
use db; 
CREATE PROCEDURE T.countnum 
AS 
Insert into T1 values((select count(*) from T.countTable)) 
go