Динамические таблицы в sql - PullRequest
1 голос
/ 27 февраля 2009

Есть ли способ создания динамических таблиц в SQL Server 2000?

Ответы [ 2 ]

4 голосов
/ 27 февраля 2009

Вы можете создать временные таблицы, добавив к ним префикс octothorp (#), или вы можете использовать переменные таблиц с префиксом @.

create table #tempTable (col1 char(1)) -- Temporary table

declare @tempTableVariable table (col1 char(1)) -- Table variable

С http://www.sqlteam.com/article/temporary-tables

  • Если у вас меньше 100 строк, обычно используйте табличную переменную. В противном случае используйте временную таблицу. Это связано с тем, что SQL Server не будет создавать статистику для табличных переменных.
  • Если вам нужно создать индексы для него, вы должны использовать временную таблицу.
  • При использовании временных таблиц всегда создавайте их и создавайте любые индексы, а затем используйте их. Это поможет уменьшить перекомпиляции. Влияние SQL уменьшается, начиная с SQL Server 2005, но это все еще хорошая идея.
0 голосов
/ 27 февраля 2009

Вот пример пользовательской функции, которая возвращает табличную переменную:

CREATE FUNCTION getDynamicTable () 
RETURNS     
    @output table (
        id int identity,
        value nvarchar(50)
    )
AS
BEGIN

    insert into @output (value) 
    values ('test 1')

    insert into @output (value) 
    values ('test 2')

    return
END

Надеюсь, это поможет

...