powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выполнение строк в табличной функции
23 сообщений из 23, страница 1 из 1
Выполнение строк в табличной функции
    #38474008
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги!
Помогите немного, если можете.

Написал функцию

CREATE FUNCTION [dbo].[GetDocId](@item varchar(50))
RETURNS TABLE
AS
RETURN
(
select docid FROM [LIBRARY2].[dbo].[book_01010X]
where [itemid] in (SELECT [ItemID] FROM [LIBRARY2].[dbo].[book_01010] where item=@item)
)

Она работает

select docid from Book__doc where docid in (select docid from libra1.dbo.getdocid ('информатика'))

docid
------
1482
1662
...

Но мне надо, чтобы [BOOK_01010] передавалось параметром (и соответственно, [BOOK_01010X]

не знаю, как это сделать?!
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474025
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdon, в функции - никак
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474033
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,

Вот и я забуксовал, не знаю, что и делать. Наверное, попробую путем выбора из возможных вариантов.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474146
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А главное такое не нужно.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474154
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MniorА главное такое не нужно.
судя по префиксу _01010Х у таблицы, сильно подозреваю, что имеет место быть случай секционирования а-ля клиппер - имеется энное количество таблиц book c одинакавой структурой: book_01010X, book_01020X, итп.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474155
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonВот и я забуксовал, не знаю, что и делать.

Создать вьюху, объединяющую все эти таблицы.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474204
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
Нет, это не клиппер, это библиотека на SQL Server.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474224
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonне знаю, что и делать
Объединить все однотипные таблицы в одну?
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474230
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Вы наверное вот это имели в виду

select docid from Book__doc where docid in
(select docid FROM [LIBRARY2].[dbo].[book_01010X] where [itemid] in
(SELECT [ItemID] FROM [LIBRARY2].[dbo].[book_01010] where item='логистика'))

и просто формировать строку. Придется так и делать.
Но не хотелось бы загромождать запрос. К нему еще есть что цеплять. Но работает достаточно быстро.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474239
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость333,
Через UNION с добавлением одного поля с названием таблицы?
Таких таблиц около десятка и довольно большие. Все это должно работать
через Browser.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474278
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonГость333,
Через UNION с добавлением одного поля с названием таблицы?
Нет, через заливку данных в одну общую таблицу и удаление старых однотипных таблиц.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474304
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость333,
Нет, это невозможно, т.к. имеется работающая система, непрерывно использующая все эти таблицы.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474722
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonНет, это невозможноВсё возможно, особенно имея доступ ко всему.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474772
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mnior,
я имею доступ к основной бд только на чтение, но он мне и не нужен.
К сожалению, видимо, это действительно сделать нельзя в функции, а обойти то можно,
правда за счет загромождения запроса.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474776
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
Да, так оно и есть. Это автоматизированная библиотека.
Я правда называю это избыточным индексированием.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38474806
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonя имею доступ к основной бдИ не нужно.
Если вы пишете CREATE FUNCTION, то далее уже не важно.
Вы можете просто перекроить интерфейс доступа, и называется такой паттерн - фасад.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475018
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mnior,
Функция создается в другой БД- Libra1. А таблицы- в Library2, это видно из текста.
Но я действительно не хотел бы сливать большие таблицы только ради экономии нескольких строк текста.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475028
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonНо я действительно не хотел бы сливать большие таблицы только ради экономии нескольких строк текста.Не для экономии нескольких строк, а потому, что это правильная модель данных. Хотя бы чтоб быстрее работало, проще в сопровождении и т.п.

А для упрощения запросов используйте вьюху, объединяющую эти таблицы, как вам уже написал pkarklin.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475032
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonНо я действительно не хотел бы сливать большие таблицы только ради экономии нескольких строк текста.Множество таблиц одинаковой структуры почти всегда, - ошибка проектирования.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475106
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,
Ребята, я готов согласиться с Вами, но поймите- это московская система, работает много лет (правда, осталась
без команды разработчиков), текстов у меня нет, при каждой новой книге она пишет в несколько таблиц, что я
могу здесь поделать? Мне надо модуль поиска через интернет написать.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475107
topdon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,
т.е. через union c добавлением поля с именем таблицы?
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475226
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topdonalexeyvg,
т.е. через union c добавлением поля с именем таблицы?Ну да, с добавлением поля или нет - зависит от задачи.

Только UNION ALL, а не UNION, естественно.
...
Рейтинг: 0 / 0
Выполнение строк в табличной функции
    #38475230
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выполнение строк в табличной функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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