2009-02-27 6 views
1

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

+0

Есть ли у вас более подробной информации о том, что вы хотели бы достичь? Вы пытаетесь создать новые таблицы, которые останутся в базе данных? Вы хотите изменить существующие таблицы, чтобы изменить их столбцы? Вам нужны временные таблицы для обработки хранимых процедур? –

ответ

4

Вы можете создать временные таблицы, указав их на 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 Server 2005, но это все еще хорошая идея.
+0

, если вы создаете временную таблицу с помощью анализатора запросов/консоли управления, таблица сохраняется до тех пор, пока вы явно не удалите их или не закрываете сеанс – RuudKok

0

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

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 

Надеется, что это помогает

Смежные вопросы