Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 объясните пожалуйста разницу..  [new]
vladka63
Member

Откуда:
Сообщений: 1688
Здрасте)
не могу понять разницу ..
Задача: добавляют по одной строке в таблицы 1 и 2, потом беру Id добавленных строк и еще с одной инфой заполняю Таблицу 3.

есть запрос. Начинаю его тестировать разными способами:
Способ 1: тестирую запрос (execute) через Management Studio (делаю добавление в таблицы). Всё работает отлично. Всё добавлено
Запрос выглядит так:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[AddNewTo]
@NamePro varchar(MAX),
@NameTo varchar(MAX),
@IdPro INT OUTPUT,
@IdTo INT OUTPUT,
@BaCeTo money
AS

BEGIN
SET NOCOUNT ON;

INSERT INTO aaSpraPro(NamePro) VALUES (@NamePro)

SET @IdPro = SCOPE_IDENTITY()

INSERT INTO aaSpraTo(NameTo) VALUES (@NameTo)

SET @IdTo = SCOPE_IDENTITY()

INSERT INTO aKatTo(IdPro, IdTo, BaCeTo) VALUES (@IdPro, @IdTo, @BaCeTo)


END
Способ 2 тестирую через Visual Studio:
запрос выглядит аналогично - но без
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

пишет: не получен параметр @IdPro

подскажите пожалуйст в чем не прав?

Спасибо
12 янв 10, 17:11    [8172946]     Ответить | Цитировать Сообщить модератору
 Re: объясните пожалуйста разницу..  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
vladka63,

а где вызов процедуры? В вызове у параметров тоже OUTPUT пишете?
12 янв 10, 17:14    [8172989]     Ответить | Цитировать Сообщить модератору
 Re: объясните пожалуйста разницу..  [new]
el Pueblo
Member

Откуда: Харьков
Сообщений: 202
а зачем у процедуры вообще эти два параметра (@IdPro INT OUTPUT,@IdTo INT OUTPUT) ведь эти переменные только внутри используются, вот и объявили бы их внутри
12 янв 10, 17:22    [8173080]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить