Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как создать временную таблицу и вставить в нее записи? [D6, MSSQL]


Nikolai_S ©   (2004-04-13 15:50:00) 

Уважемые мастера!
Такой вопрос: имеется SQL-запрос (SELECT Field1, Field2, .... FROM ....)
Как в MS SQL Server 2000 создать ВРЕМЕННУЮ таблицу, набор полей и записей в которой соответствовали бы данному запросу?

Я объявил переменную
DECLARE @MY_TMP_TABLE TABLE(Field1 int, Field2 nvarchar(255)....)

Но в справке по Transact SQL указано, что нельзя выполнять операции типа:
SELECT * FROM [MY_TABLE] INTO [table_variable]и
INSERT INTO [table_variable] SELECT * FROM [MY_TABLE]


Nikolai_S   (2004-04-13 17:41:00) [1]

Всем спасибо. Разобрался, все получилось.


ZrenBy   (2004-04-13 16:23:00) [2]

declare @S nvarchar(4000)
set @S = N'select * into #t from authors
select * from #t
drop table #t'

exec sp_executesql @S


bushmen   (2004-04-13 16:22:00) [3]

create procedure my_proc(@name varchar(50), @type varchar(50)) as
begin
declare @sSQL varchar(50)
set @sSQL = 'create table ' + @name + '(pole1 ' + @type + ')'
exec(@sSQL)
end

'ну, и добавляешь, что нужно еще


serge35   (2004-04-13 16:21:00) [4]

Конечно можно, даже нужно.
Только перед тем, как задавать массу вопросов, почитай литературу по процедурам или найди пример какой-нибудь.


ZrenBy   (2004-04-13 16:19:00) [5]

use pubs

1 вариант
declare @t table(A int identity(1,1),B varchar(20), C varchar(100))
insert into @t (B,C) select au_id,au_lname from authors
select * from @t order by 1


2 вариант
select * into #t from authors
select * from #t
drop table #t


Nikolai_S   (2004-04-13 16:18:00) [6]


> После процедуры Drop Table.
> или Alter table


Ну это естественно.

Все получилось.

Теперь вопрос к выше обозначенной временной таблице: можно ли запихать все эти операции в хранимую процедуру? Нужно, чтобы в качестве входных параметров были:
1. Имя временной таблицы и Fields definitions (nvarchar)
2. SQL-запрос (nvarchar)


serge35   (2004-04-13 16:07:00) [7]

После процедуры Drop Table.
или Alter table


Nikolai_S   (2004-04-13 16:03:00) [8]


> serge35   (13.04.04 15:51) [1]


Спасибо.
Пожалуй, действительно так проще. Я хотел сначало через переменную, но похоже так не получается


serge35   (2004-04-13 15:51:00) [9]

Create table


Наверх

Титульная страница Поиск, карта сайта Написать письмо