Posts
460
Comments
263
Trackbacks
0
Eine Tabelle in eine temporäre Tabelle kopieren

Es gibt mindestens 2 Wege eine Tabelle in eine temporäre Tabelle zu kopieren:

einfacher Weg: 

DECLARE @tabelle nvarchar(100)
DECLARE @sql nvarchar(1000)

set @tabelle = "TabellenName"

set @sql = 'select * into ##temp from ' + @tabelle 
exec(@sql) 

   

umständlicher Weg: 

-- eine leere temporäre Tabelle anlegen
if object_id(N'tempdb..#temp') is not null
begin
   drop table #temp
end

create table #temp(id int)  

DECLARE TabellenFelder CURSOR FOR 
select  column_name, data_type, character_maximum_length,is_nullable 
from    information_schema.columns
where   table_name = @Tabelle
order   by ordinal_position

OPEN TabellenFelder 

FETCH NEXT FROM TabellenFelder INTO @column_name, @data_type, @character_maximum_length, @is_nullable 

WHILE @@FETCH_STATUS =
      BEGIN 
            --neue Spalte hinzufügen 
            set @sql = 'alter table #temp add ' + @column_name + ' ' 
            set @sql = @sql + @data_type 
            if @data_type ='nvarchar'  
            set @sql = @sql + '(' + @character_maximum_length +')' 
            exec(@sql)

            FETCH NEXT FROM TabellenFelder INTO @column_name, @data_type, @character_maximum_length, @is_nullable  
      END

CLOSE TabellenFelder
DEALLOCATE TabellenFelder

--die erste Spalte wieder löschen
set @sql = 'alter table #temp drop column id'
exec(@sql)

-- jetzt die Tabelle in die temporäre Tabelle kopieren
set @sql = 'insert into #temp select * from ' + @Tabelle
exec(@sql) 

posted on Wednesday, May 11, 2011 11:57 AM Print
Comments
No comments posted yet.

Post Comment

Title *
Name *
Email
Url
Comment *  
Please add 6 and 2 and type the answer here: