Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Как создать временную таблицу и вставить в нее записи?   Найти похожие ветки 

 
Nikolai_S ©   (2004-04-13 15:50) [0]

Уважемые мастера!
Такой вопрос: имеется 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]


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

Create table


 
Nikolai_S ©   (2004-04-13 16:03) [2]


> serge35   (13.04.04 15:51) [1]


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


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

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


 
Nikolai_S ©   (2004-04-13 16:18) [4]


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


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

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

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


 
ZrenBy ©   (2004-04-13 16:19) [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


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

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


 
bushmen ©   (2004-04-13 16:22) [7]

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

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


 
ZrenBy ©   (2004-04-13 16:23) [8]

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

exec sp_executesql @S


 
Nikolai_S ©   (2004-04-13 17:41) [9]

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
9-1064762122
Andrew R2D2 (RnD)
2003-09-28 19:15
2004.04.11
GLScene - копирование обьекта в процессе выполнения программы


14-1081686789
Thor
2004-04-11 16:33
2004.04.11
самоубийство.


14-1079598894
zamkom
2004-03-18 11:34
2004.04.11
Ваше мнение о программе.


1-1080224872
PiratA
2004-03-25 17:27
2004.04.11
RxLIB


1-1079961519
sucer
2004-03-22 16:18
2004.04.11
Как Прочитать данные из ячеек из файла EXCEL?