2010-03-16 2 views
0

Так что мне нужно выяснить, как я могу получить значение счетчика записей, и использовать этот счет как новое значение для вставки в таблицу.SQL-запрос, чтобы получить счет внутри хранимого кода

Ex: В моей хранимой процедуры

@count INT

Что им ищет

@count равным «выберите верхний (1) _fieldName от _someTable по заказу _fieldName Desc "

Наконец

вставка в значения _newTable (_fieldName) (@count)

End

я не должен использовать переменную, просто пытается продемонстрировать, что им на самом деле пытается делать. Мои знания 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. Это , который использует все строки, возвращенные из 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) 
0

Что я искал была личность вставки во время хранимой процедуры. завершите это некоторое время назад, но хотите опубликовать окончательный ответ.

SELECT SCOPE_IDENTITY()

Смежные вопросы