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

Откуда: Волгоград
Сообщений: 273
Я недавно занимаюсь MS SQL, создал несколько процедур, а вот на этой какие-то непонятные для меня ошибки

процедура параметр1 параметр2
если параметр 1>0 то выводим на экран, если параметр2>0 то выводим в файл

CREATE PROC ta_knigaP
@v1 INT,
@v2 INT
AS

If object_id('tempdb..#t')>0 DROP TABLE #t
GO

create table #t ( dcf DATETIME,
ncf bigint,
komy NVARCHAR(200),
n10 MONEY,
nn10 MONEY,
n18 MONEY,
nn18 MONEY )
GO

DECLARE @maxdate DATETIME
DECLARE @mindate DATETIME


SET @maxdate = (SELECT ДатаСФ FROM КнигаПродаж WHERE кому LIKE '%скидка%' AND ДатаСФ in (SELECT max(датасф) FROM книгапродаж))
SET @mindate = (select dateadd(day,1-day(@maxdate),@maxdate))

INSERT #t SELECT КП.ДатаСФ, Кп.НомерСФ, Кп.Кому, Кп.N10, Кп.NN10, Кп.N18, Кп.NN18
FROM КнигаПродаж КП
WHERE КП.кому LIKE '%скидка%' AND КП.ДатаСФ BETWEEN @mindate AND @maxdate
order by 1,2,3
GO

ALTER TABLE #t ADD SUMM MONEY;
GO

UPDATE #t
SET SUMM=N10+NN10+N18+NN18
WHERE 1=1
GO

IF @v1>0
BEGIN
SELECT *
FROM #t
END

IF @v2>0
BEGIN
DECLARE @cmd_line VARCHAR(200)
set @cmd_line = 'sqlcmd -S server -Q "SELECT * FROM #t" -b -o C:\Export_knigaP.txt -s ; -k'
EXEC master..xp_cmdshell @cmd_line, no_output
END


ошибки пишет такие

Сообщение 2714, уровень 16, состояние 6, строка 2
There is already an object named '#t' in the database.
Сообщение 208, уровень 16, состояние 1, строка 6
Invalid object name 'КнигаПродаж'.
Сообщение 2705, уровень 16, состояние 4, строка 2
Column names in each table must be unique. Column name 'SUMM' in table '#t' is specified more than once.
Сообщение 137, уровень 15, состояние 2, строка 2
Must declare the scalar variable "@v1".
Сообщение 137, уровень 15, состояние 2, строка 8
Must declare the scalar variable "@v2".


НО если убрать create proc, переменные (все что относится к процедуре) то отрабатывает отлично
Подскажите как правильно это написать?
22 авг 12, 11:39    [13047959]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в хранимой процедуре  [new]
Glory
Member

Откуда:
Сообщений: 104751
А что за GO у вас по тексту процедуры раскиданы ?
22 авг 12, 11:41    [13047965]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в хранимой процедуре  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
ура ура ура
спасибо
22 авг 12, 11:59    [13048151]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить