Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранимая процедура с вариативностью результата / 24 сообщений из 24, страница 1 из 1
18.04.2018, 16:54
    #39632677
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура с вариативностью результата
Есть ХП.

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



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

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

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

авторненахождении полей из этой процедуры
может ошибку не пересказывая?
В таблице такой-то не найдено поле такое то.
Из первого же запроса в ХП 2
...
Рейтинг: 0 / 0
18.04.2018, 17:05
    #39632697
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура с вариативностью результата
Гавриленко Сергей АлексеевичGerasimenkoВопрос: почему, если при первом вызове ХП 2 не возвращать набор записей, то вываливается ошибка о ненахождении полей из этой процедуры?Каким приложением и какая именно ошибка выводится?
Из студии
...
Рейтинг: 0 / 0
18.04.2018, 17:07
    #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
18.04.2018, 17:09
    #39632700
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура с вариативностью результата
Gerasimenko,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

авторProcedure fGetReportOpenDay_1_ 203
Идентификатор 203, обеспечивающий уникальность. #tmpName_203 уникальна
...
Рейтинг: 0 / 0
18.04.2018, 17:38
    #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
18.04.2018, 18:07
    #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
18.04.2018, 18:12
    #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
18.04.2018, 18:17
    #39632753
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура с вариативностью результата
Гавриленко Сергей АлексеевичGerasimenkoТолько честно: Вы всегда делаете Create table #NameTable ?
Кто не хочет собирать грабли, вроде ваших, тот делает....
Да понял я. И изначально был уверен, что имя темповой таблицы уникально. 21349695 Но промахнулся.
В моем случае, меня вполне устраивает данный вариант. Ошибка исключена.
...
Рейтинг: 0 / 0
18.04.2018, 21:40
    #39632854
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранимая процедура с вариативностью результата
GerasimenkoTaPaKпропущено...
[/src]
Только честно: Вы всегда делаете Create table #NameTable ?
.
да всегда, это избавляет от массы проблем. И отгораживание какими-то придуманными идентификаторами
вызывает только тошноту
авторИ да, в конце процедуры b есть Drop table #a.
"папа а дэ море"
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранимая процедура с вариативностью результата / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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