Temp tabele
Wednesday, 02.07.2008 – ZidarKoliko puta mi se desilo da pokusam da izvrsim nesto ovako:
SELECT * INTO #TempTAble FROM MyTable
da bih dobio poruku
Msg 2714, Level 16, State 6, Line 1 There is already an object named ‘#TempTable’ in the database.
Pokusaj da ordadim ovo:
IFÂ Object_id(‘#TempTable’) IS NOT NULL DROP #TempTable
daje mi ovo:
Msg 102 , Level 15, State 1, Line 1 Incorrect syntax near ‘#TempTable’
Naravno, Object_ID radi samo sa ‘lokalnim’ tabelama. Medjutim, pametni ljudi nadju reseje za sve. Jedna pametan covek, Itzik Ben-Gan, u knjizi “Inside Microsofr SQL Server 2005: T-SQL programming” dao je ovakvo resenje:
IF Object_id(‘tempdb..#TempTable’) IS NOT NULL DROP TABLE #TempTable
Radi bez greske, pa mogu da napisem:
IF Object_id(‘tempdb..#TempTable’) IS NOT NULL DROP TABLE #TempTable
SELECTÂ Â *Â INTO #TempTable FROM dbo.Board
i da me vise ne moram da mislim da li sam dropnuo ili nisam temp tabelu.
U istoj knjizi pise i da se temp tabela moze indeksirati, na primer
— Add some indexing:
CREATEÂ UNIQUE CLUSTERED INDEX id_tblSIF ON #tblSIF (StudentBarcode, FieldName)
Moja tabela od 500,000 slogova ce sada mnogo brze da odgovara na upite.
Â