Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
1-1082302900
TechnDreamer
2004-04-18 19:41
2004.04.11
Обработка текста в TRichedit с учетом форматирования


7-1080379495
killer
2004-03-27 12:24
2004.04.11
Какой браузер установлен на компъютере


7-1073743146
Angel_Forever
2004-01-10 16:59
2004.04.11
Quake & CS


3-1078984791
ГАГН
2004-03-11 08:59
2004.04.11
DBComboBox?


1-1080146266
Anton
2004-03-24 19:37
2004.04.11
Windows XP




   Наверх