Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2012, 12:19   #1
jigy2
 
Регистрация: 11.05.2010
Сообщений: 6
По умолчанию ms sql server 2005 create procedure

Всем добрых суток!
У меня простой вопрос, надеюсь вы мне поможете)
есть процедура, процедура в базе данных mssql. Процедура вставляет новую запись в таблицу, хочу чтобы эта хранимая процедура возвращала id новой строки.

Код процедуры:

Код:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CreateRequest] 
    @p_interface_kd int,
	@p_action_kd int,
	@p_request_text ntext --null пока
AS 
    SET NOCOUNT ON;
insert into dbo._RNKO_REQUEST
	(interface_kd,action_kd,request_dt,request_text)
values
	(@p_interface_kd,@p_action_kd,current_timestamp,@p_request_text);
return ????

Последний раз редактировалось Serge_Bliznykov; 15.06.2012 в 13:08.
jigy2 вне форума Ответить с цитированием
Старый 15.06.2012, 13:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

посмотрите вот эту статью:

Q&A - К вопросу об идентификаторах
Автоинкременты и все, все, все…


Цитата:
Все это конечно здорово, но, как правило, просто уникально идентифицировать запись недостаточно, необходимо еще связать эту запись с записью из другой таблицы по этому самому идентификатору. А для этого надо уметь получать этот идентификатор сразу же после его генерации. Для выполнения этой задачи в Microsoft SQL Server существуют 3 функции: @@IDENTITY, SCOPE_IDENTITY() и IDENT_CURRENT().
......

т.е., если я правильно всё понял, Вам нужно:
Код:
... SELECT IDENT_CURRENT('dbo._RNKO_REQUEST') ...

Последний раз редактировалось Serge_Bliznykov; 15.06.2012 в 13:19.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.06.2012, 13:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
create function [dbo].[CreateRequest] 
    @p_interface_kd int,
	@p_action_kd int,
	@p_request_text ntext --null пока
AS 
    SET NOCOUNT ON;
insert into dbo._RNKO_REQUEST
	(interface_kd,action_kd,request_dt,request_text)
values
	(@p_interface_kd,@p_action_kd,current_timestamp,@p_request_text);

return (select max(id) from dbo._RNKO_REQUEST)
Юзать так:
Код:
Select * from CreateRequest(тута параметры)
Это с потолка, не пробовал давно уже этим заниматься, и нужно знать сам механизм описания id. Если он автоинкрементен то пробуй это.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2012, 15:04   #4
jigy2
 
Регистрация: 11.05.2010
Сообщений: 6
Хорошо

Спасибо ребят, с проблема решена)
jigy2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Create Login MS. SQL Server 2005 xxbesoxx SQL, базы данных 2 22.05.2012 22:08
Работа с MS SQL Server 2005 EE LittleFatCat SQL, базы данных 2 03.10.2011 12:00
MS SQL 2005 Server регистрозависимым Cawboy БД в Delphi 0 26.03.2010 15:45
Вставка БД с SQL server 2005 фЁдОр SQL, базы данных 17 20.11.2007 17:15