Консультация № 159069
29.01.2009, 06:50
0.00 руб.
0 1 1
Доброй ночи, господа!
Срочно нужна помощь. Проблема в следующем

----------------------------Есть хранимая процедура-------------------

CREATE PROC InsertTT
(
@TicketID int OUT,
@Description varchar(100),
@RespPerson smallint,
@ControlPerson smallint,
@History varchar(max),
@Status varchar(15),
@SecurityLevel varchar(15),
@ChanelID int,
@Creator nvarchar(128),
@WhenCreated datetime = NULL
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @err int
INSERT INTO TroubleTickets
(
Description, RespPerson, ControlPerson, History, Status,
SecurityLevel, ChanelID, Creator, WhenCreated
)
VALUES
(
@Description, @RespPerson, @ControlPerson, @History,
@Status, @SecurityLevel, @ChanelID, @Creator, GETDATE() ---<<<<<<<<-------
)
SELECT @TicketID = @@IDENTITY, @err = @@ERROR

IF @Err = 0
RETURN 0
ELSE
RETURN -1
END

--------------------------------------Есть запрос на запуск------------------------------

DECLARE @TicketID int
EXEC InsertTT @TicketID out, 'Описание', 1, 2, 'История',
'Service', 'Public', 70850, 'Иванов'
SELECT @TicketID AS TicketID
GO

--------------------------------------------------------------

так, как я написал все работает, НО, как только вместо 'Creator' я ставлю SUSER_NAME(), и соответственно, убираю в запросе вызова процедуры параметр 'Иванов', появляется следующее

"Процедура или функция "InsertTT" ожидает параметр "@Creator", который не был предоставлен."

тип возвращаемых данных правильный (если верить tech.microsoft.com.ru)
с SUSER_SNAME() такая же ситуация.

Будьте добры, посодействуйте в решении данного вопроса!

Обсуждение

Неизвестный
29.01.2009, 08:30
общий
это ответ
Здравствуйте, Константин Ашоким!
Измените процедуру и не пердавайте имя как праметр.

CREATE PROC InsertTT
(
@TicketID int OUT,
@Description varchar(100),
@RespPerson smallint,
@ControlPerson smallint,
@History varchar(max),
@Status varchar(15),
@SecurityLevel varchar(15),
@ChanelID int,
@WhenCreated datetime = NULL
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @err int, @Creator nvarchar(128)
select @Creator =SUSER_NAME()
INSERT INTO TroubleTickets
(
Description, RespPerson, ControlPerson, History, Status,
SecurityLevel, ChanelID, Creator, WhenCreated
)
VALUES
(
@Description, @RespPerson, @ControlPerson, @History,
@Status, @SecurityLevel, @ChanelID, @Creator, GETDATE() ---<<<<<<<<-------
)
SELECT @TicketID = @@IDENTITY, @err = @@ERROR

IF @Err = 0
RETURN 0
ELSE
RETURN -1
END

Форма ответа