powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранимая процедура с вариативностью результата
24 сообщений из 24, страница 1 из 1
Хранимая процедура с вариативностью результата
    #39632677
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ХП.

1) Внутри ХП 1 используются курсоры с вызовом другой ХП 2, у которой в свою очередь есть параметр, который определяет, нужно ли возвращать набор записей.
2) Внутри ХП 2 используются временные таблицы.
3) Внутри ХП 2 в конце такая конструкция
Код: sql
1.
IF @IsResultSelect = 0 SELECT 



Вопрос: почему, если при первом вызове ХП 2 не возвращать набор записей, то вываливается ошибка о не нахождении полей из этой процедуры?
Если же один раз вернуть значения, то потом все работает "как часы"?

MSSQL2008 R2
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632681
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoВопрос: почему, если при первом вызове ХП 2 не возвращать набор записей, то вываливается ошибка о ненахождении полей из этой процедуры?Каким приложением и какая именно ошибка выводится?
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632684
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gerasimenko,

авторненахождении полей из этой процедуры
может ошибку не пересказывая?
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632694
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenko,

авторненахождении полей из этой процедуры
может ошибку не пересказывая?
В таблице такой-то не найдено поле такое то.
Из первого же запроса в ХП 2
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632697
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичGerasimenkoВопрос: почему, если при первом вызове ХП 2 не возвращать набор записей, то вываливается ошибка о ненахождении полей из этой процедуры?Каким приложением и какая именно ошибка выводится?
Из студии
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632698
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenko,

авторненахождении полей из этой процедуры
может ошибку не пересказывая?

Msg 207, Level 16, State 1, Procedure fGetReportOpenDay_1_203, Line 52
Invalid column name 'IsGroup'.
Msg 207, Level 16, State 1, Procedure fGetReportOpenDay_1_203, Line 52
Invalid column name 'TypeRow'.

и т.д.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632700
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gerasimenko,

а временные таблицы создаете поди SELECT ... INTO #table FROM ?
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632701
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenko,

а временные таблицы создаете поди SELECT ... INTO #table FROM ?Да
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632703
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoTaPaKGerasimenko,

а временные таблицы создаете поди SELECT ... INTO #table FROM ?Да
решение очевидно? :)
ну и в вашей хп1 судя по всему есть таблица с таким же именем
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632704
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...
Да
решение очевидно? :)
ну и в вашей хп1 судя по всему есть таблица с таким же именем
Нет. Одинаковых нет.
DROP TABLE # так же присутствует.

И мне не нужен возврат результатов в данном случае.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632707
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...
Да
решение очевидно? :)
ну и в вашей хп1 судя по всему есть таблица с таким же именем
Или вы не о темповых таблицах?
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632708
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoTaPaKпропущено...

решение очевидно? :)
ну и в вашей хп1 судя по всему есть таблица с таким же именем
Нет. Одинаковых нет.
DROP TABLE # так же присутствует.

И мне не нужен возврат результатов в данном случае.
продолжайте фантазировать
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632710
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...

Нет. Одинаковых нет.
DROP TABLE # так же присутствует.

И мне не нужен возврат результатов в данном случае.
продолжайте фантазироватьСейчас еще раз проверю. Спасибо.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632720
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...

Нет. Одинаковых нет.
DROP TABLE # так же присутствует.

И мне не нужен возврат результатов в данном случае.
продолжайте фантазировать
Да, был фантазером и мечтателем (не Кремлевским :) )
Большое спасибо: затесалась-таки темповая таблица с одинаковым именем. После присвоения уникального имени: все заработало.
Еще раз большое спасибо!!!
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632722
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoTaPaKпропущено...

продолжайте фантазировать
Да, был фантазером и мечтателем (не Кремлевским :) )
Большое спасибо: затесалась-таки темповая таблица с одинаковым именем. После присвоения уникального имени: все заработало.
Еще раз большое спасибо!!!
првильное решение это не прибить "вторую", а создавать объект через CREATE TABLE #table, а не как у вас
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632724
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...

Да, был фантазером и мечтателем (не Кремлевским :) )
Большое спасибо: затесалась-таки темповая таблица с одинаковым именем. После присвоения уникального имени: все заработало.
Еще раз большое спасибо!!!
првильное решение это не прибить "вторую", а создавать объект через CREATE TABLE #table, а не как у вас
Много полей и много промежуточных результатов. МСДН не запрещает такой вариант.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632725
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoTaPaKпропущено...

првильное решение это не прибить "вторую", а создавать объект через CREATE TABLE #table, а не как у вас
Много полей и много промежуточных результатов. МСДН не запрещает такой вариант.
мда... "Следующий"
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632727
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...

Да, был фантазером и мечтателем (не Кремлевским :) )
Большое спасибо: затесалась-таки темповая таблица с одинаковым именем. После присвоения уникального имени: все заработало.
Еще раз большое спасибо!!!
првильное решение это не прибить "вторую", а создавать объект через CREATE TABLE #table, а не как у вас
Тупо НЕвнимательность (усталость). Идентификаторы решают эти проблемы.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632732
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...

Много полей и много промежуточных результатов. МСДН не запрещает такой вариант.
мда... "Следующий"

авторProcedure fGetReportOpenDay_1_ 203
Идентификатор 203, обеспечивающий уникальность. #tmpName_203 уникальна
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632734
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoTaPaKпропущено...

мда... "Следующий"

авторProcedure fGetReportOpenDay_1_ 203
Идентификатор 203, обеспечивающий уникальность. #tmpName_203 уникальна
продолжайте фантазировать
вот схема вашей ошибки
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE  PROC dbo.b
AS
	SELECT 1 as Id
	INTO #a
	
	SELECT * FROM  #a
	
	UPDATE #a SET Id = 2
GO


CREATE PROC dbo.a
AS
	CREATE TABLE #a (S INT)

	EXEC dbo.b

GO

EXEC dbo.a

DROP PROC dbo.b
DROP PROC dbo.a
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632748
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKGerasimenkoпропущено...


пропущено...

Идентификатор 203, обеспечивающий уникальность. #tmpName_203 уникальна
продолжайте фантазировать
вот схема вашей ошибки
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE  PROC dbo.b
AS
	SELECT 1 as Id
	INTO #a
	
	SELECT * FROM  #a
	
	UPDATE #a SET Id = 2
GO


CREATE PROC dbo.a
AS
	CREATE TABLE #a (S INT)

	EXEC dbo.b

GO

EXEC dbo.a

DROP PROC dbo.b
DROP PROC dbo.a


Только честно: Вы всегда делаете Create table #NameTable ?
p.s. Нет, это не фантазии. И да, в конце процедуры b есть Drop table #a.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632751
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoТолько честно: Вы всегда делаете Create table #NameTable ?
Кто не хочет собирать грабли, вроде ваших, тот делает.
Gerasimenkop.s. Нет, это не фантазии. И да, в конце процедуры b есть Drop table #a.Да хоть в начлае. Вы просто не понимаете, что проверка наличия полей для существующих объектов осуществляется на этапе компиляции, а не выполнения.

Вот так, к примеру, уже работает:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE  PROC dbo.b
AS
	SELECT 1 as Id
	INTO #a
	
	SELECT * FROM  #a
	
	execute ('UPDATE #a SET Id = 2')

    select * from #a
GO


CREATE PROC dbo.a
AS
	CREATE TABLE #a (S INT)

	EXEC dbo.b

    select * from #a
GO

EXEC dbo.a

DROP PROC dbo.b
DROP PROC dbo.a
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632753
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичGerasimenkoТолько честно: Вы всегда делаете Create table #NameTable ?
Кто не хочет собирать грабли, вроде ваших, тот делает....
Да понял я. И изначально был уверен, что имя темповой таблицы уникально. 21349695 Но промахнулся.
В моем случае, меня вполне устраивает данный вариант. Ошибка исключена.
...
Рейтинг: 0 / 0
Хранимая процедура с вариативностью результата
    #39632854
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoTaPaKпропущено...
[/src]
Только честно: Вы всегда делаете Create table #NameTable ?
.
да всегда, это избавляет от массы проблем. И отгораживание какими-то придуманными идентификаторами
вызывает только тошноту
авторИ да, в конце процедуры b есть Drop table #a.
"папа а дэ море"
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранимая процедура с вариативностью результата
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]