Як створити тимчасову таблицю і вставити в неї записи
Як створити тимчасову таблицю і вставити в неї записи?
Я оголосив змінну
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]
Дякуємо.
Мабуть, дійсно так простіше. Я хотів спочатку через змінну, але схоже так не виходить
Після процедури Drop Table.
або Alter table
> Після процедури Drop Table.
> Або Alter table
Ну це природно.
Тепер питання до вище означеної тимчасової таблиці: чи можна запхати всі ці операції в збережену процедуру? Потрібно, щоб в якості вхідних параметрів були:
1. Ім'я тимчасової таблиці і Fields definitions (nvarchar)
2. SQL-запит (nvarchar)
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
Звичайно можна, навіть потрібно.
Тільки перед тим, як ставити масу питань, почитай літературу по процедурам або знайди приклад який-небудь.
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
"Ну, і додаєш, що потрібно ще
declare @S nvarchar (4000)
set @S = N "select * into #t from authors
select * from #t
drop table #t "
exec sp_executesql @S
Всім дякую. Розібрався, все вийшло.