Sybase хранит проки, которые используют временные таблицы. Вопрос создания - PullRequest
2 голосов
/ 29 декабря 2010

Я пытаюсь создать хранимую процедуру sybase, которая ссылается на временную таблицу, но я не знаю определения этой временной таблицы. Я мог бы посмотреть на процесс и выяснить, как выглядит временная таблица, и сначала создать ее вручную, но я столкнулся с примерно 1000 процессами (которые ссылаются на все виды временных таблиц), и это решение было бы чрезвычайно утомительным.

Я искал более стратегический подход, но пока не повезло. Буду признателен, если вы поделитесь своими мыслями со мной.

Ответы [ 2 ]

3 голосов
/ 14 января 2011

Похоже, вы не понимаете, что весь смысл #table заключается в том, что:

  1. временно

  2. существует только в контексте хранимого процесса, который его создает

  3. это личное

Поэтому создание нового хранимого процесса для «ссылки» на #table другого процесса не является разумной попыткой. Либо напишите полностью независимый хранимый процесс с собственным #table, или измените исходный хранимый процесс так, чтобы временная таблица существовала вне его контекста (см. Ниже).

Вам придется перепрыгивать через обручи и разные обручи для разных версий Sybase, чтобы получить либо определение, либо данные в таких # таблицах.

  • Если вы можете уловить момент , когда выполняется один из этих сохраненных процессов, и , у вас есть привилегия sa, вы, безусловно, можете проверить DDL через SybaseCentral или другой инструмент DBA .

Если вы выполняете упражнение по документированию, альтернативы проверке кода sproc нет; если вы этого не сделаете, вы упустите важные аспекты таблицы #, которая скрыта в коде.

Для временных таблиц, которые предназначены для общего доступа (т. Е. Существуют вне контекста хранимого процесса), вместо:
CREATE TABLE #my_table ...
Применение:
CREATE TABLE tempdb..my_table ... и выполните это вне любого процесса, прежде чем скомпилировать процесс.

0 голосов
/ 30 декабря 2010

Я думаю, вы могли бы получить #table метаданных из таблиц systables и syscolumns tempdb.

Посмотрите на статью Роба Вершура http://www.sypron.nl/temptab.html о #table name и трюке с дампом загрузки tempdb.

...