Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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]


 
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


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

Create table


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


> serge35   (13.04.04 15:51) [1]


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


 
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


 
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)


 
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


 
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]

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


 
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

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


 
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


 
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]

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


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

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



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

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.036 c
6-1075646902
grifff
2004-02-01 17:48
2004.05.09
IdSNMP


6-1079338786
Аноним
2004-03-15 11:19
2004.05.09
TClientSocket, TServerSocket


8-1076420291
Larry
2004-02-10 16:38
2004.05.09
Поиск координаты точки


3-1081923686
Имя2
2004-04-14 10:21
2004.05.09
Фильтрация


3-1081949308
Term
2004-04-14 17:28
2004.05.09
Как программно получить информацию о ROLE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский