Dear Folks,
     Langsung aja,
Memang benar dilihat di tabel tempdb, temporary tabel yang kita buat 
baik melalui coding vb maupun lansung dengan perintah sql tidak akan 
pernah ada karena dia adalah temporary table. Temporary tabel dapat 
dibuat dengan cara yang sama dengan jika kita membuat user-defined 
table, kecuali nama temporary tabel *harus* diawali dengan karakter 
hash  (#).
 **keberaadaan dari temporary table sangat pendek*.
   jika batch  (kumpulan satu atau lebih T-SQL statement) atau store 
procedure yang membuat temporary table tersebut berakhir masa 
operasinya, maka otomatis temporary tersebut akan didelete oleh SQL 
Server.Jika kamu membuat temporary tabel secara interaktif misal dari 
Query Analyzer, dia akan tetap hidup selama kamu tidak menutup session 
di query analyzer tersebut.
**Scope dari temporary table juga terbatas,
*
 - Hanya sebuah koneksi (ke SQL Server tentunya) yang membuat temporary 
table yang dapat melihat temporary tabel tersebut(nanti saya beri contoh 
codingnya)
 - Jika banyak user misal dalam aplikasi Client / Server membuat 
temporary table dengan nama yang sama, maka user tersebut hanya dapat 
melihat temporary tabel milikya saja (temporary tabel yang dibuat oleh 
user tersebut saja).
- *Temporary Tabel dibuat di tempdb* (secara otomatis oleh SQL Server 
jika kita create table dengan prefix #, meskipun kamu tidak sedang men- 
use tempdb).Dibuat dengan kombinasi nama table (diberi nama oleh kita) 
dan connection identifier (digenerate oleh SQL Server) .Spt kamu tau  
panjang nama yang dapat diberikan  ke  sebuah Object di SQL server 
adalah 128 karakter,tetapi khusus untuk temporary table panjangnya 
dibatasi hingga 116 char,so remain 12 char itulah yang membuat namanya 
menjadi unique.

Saran saya jika memang mau mengakses isi dari temporary tabel gunakan 
*Global Temporary Tabel*. Isi dari global temporary tabel dapat diakses 
oleh aplikasi / koneksi yang tidak membuat Global temporary table 
tersebut,dengan catatan user / aplikasi yang mencreate Global Temporary 
Tabel tersebut belum menutup koneksinya.Scopenya lebih luas.
Contoh :
* Temporary Table
    Untuk membuat : Create table #ProductTemp (
                                ProductID int primary key
                                Nama varchar(50) 
                                )
* cek di tempdb dan cari di SysObject
    Select Name from SELECT     *
FROM         sysobjects
WHERE     (name LIKE '#Pro%')
* cek di tempdb dan cari di  syscolumns untuk nama fieldnya
   syscolumns dan sysobjects dihubungkan dengan field Id
* Global Temporary Table
   untuk membuat : Create tabel ##ProductTemp(
                             ProductID int primary key
                             Nama varchar(50)
                             )
   *Nama tabel diawali dengan ##
*oke.. sekarang coba codingnya ya..
- Coba kamu buat 2 apliksi yang sama persis (atau 1 aplikasi --> exenya 
dibuka 2 kali).
1. Buat Form, tambahkan 4 button 2 textbox.
   Button 1 = create tabel temporary
   Button 2 = tutup tabel temporary
   Button 3 = tambah produk
   Button 4 = tampil produk
   ke 2 buah text untuk menampilkan produk dari temporary tabel
Private commd  As ADODB.Command
Private kon As ADODB.Connection
Private rsTemp As ADODB.Recordset 

Private Sub Form_Load()
Set kon = New ADODB.Connection
kon.ConnectionString = "Provider=SQLOLEDB.1;Persist Security 
Info=False;User ID=sa;password=;Initial Catalog=Northwind" '--> default 
Northwind, padahal nantinya tabelnya gak                                 
                                                                        
                                                                        
                      'create disini tapi di tempdb
kon.Open

End Sub
Private Sub Command3_Click() '= Button 1
    Set commd = New ADODB.Command
    Set rsTemp = New ADODB.Recordset
   
    commd.ActiveConnection = kon
    commd.CommandText = "Create Table #ProductTemp ( ProductID INT 
PRIMARY KEY, Name varchar(50))"
    commd.CommandType = adCmdText
    Set rsTemp = commd.Execute
   
    Set rsTemp = Nothing
    Set commd = Nothing
   
End Sub

Private Sub Command4_Click() 'Button 2
 Set kon = Nothing
End Sub

Private Sub Command5_Click() ' = Button 3
Call addProduct
End Sub  

Private Sub Command6_Click() '= Button 4
Call tampilProduct
End Sub

Private Sub addProduct()
    If commd Is Nothing Then
       Set commd = New ADODB.Command
    End If
    If rsTemp Is Nothing Then
       Set rsTemp = New ADODB.Recordset
    End If
    commd.ActiveConnection = kon
    commd.CommandText = "Insert Into #ProductTemp(ProductID,Name) VALUES 
(0001,'IBM THINKPAD T41')"
    commd.CommandType = adCmdText
    Set rsTemp = commd.Execute
    Set rsTemp = Nothing
    Set commd = Nothing
End Sub

Private Sub tampilProduct()
 If commd Is Nothing Then
       Set commd = New ADODB.Command
    End If
    If rsTemp Is Nothing Then
       Set rsTemp = New ADODB.Recordset
    End If
    commd.ActiveConnection = kon
    commd.CommandText = "Select * from #ProductTemp"
    Set rsTemp = commd.Execute
    Text1.Text = rsTemp(0).Value
    Text2.Text = rsTemp(1).Value
   
    Set rsTemp = Nothing
    Set commd = Nothing
End Sub
=============
Oke .. coba dulu dengan temporary table--> akses dengan aplikasi satunya 
pasti error
  Invalid Object Name "#ProductTemp'


 , kemudian coba kamu ganti dengan global temporary tabel, tambahkan ## 
pada setiap nama tabel di atas misal
...
commd.CommandText = "Select * from #ProductTemp"
ubah jadi commd.CommandText = "Select * from ##ProductTemp"
dan coba tampilkan dengan aplikasi yang tidak membuat temporary tabel 
tersebut.

oke, semoga membantu.


Wassalamualaikum


Afiadi S13RA

gus wrote:
>
> Masalahnya gini loh, sy bikin local temporary table yang di create via
> coding sekaligus insert data dari koding juga, as we know local 
> temporary table kan
> ngak nampil di list tabel
> database karena sifatnya yang temporer, kalo koneksi kita sudah
> diputus maka SQL Server secara otomatis akan men drop tabel temporary
> tersebut. Gw baca di Bokk Online katanya temporary tabel disimpen di
> database tempdb(bawaan SQL Server), tapi gw lihat ngak ada.
>
> Yang jadi masalah adalah bagaimana kita melihat isi temporary tabel
> tersebut sebelum si sql server men drop tabelnya ? Trus dimana
> sebenarnya lokasi temporary tbel tersebut ?
>
> Terimakasih atas bantuannya.
>
> Thursday, May 31, 2007, 11:26:49 AM, you wrote:
>
> > hihihi saya juga ga jelas sih..
> >
> > tapi maksut Mas Gus itu mungkin gini ..
> > Mas Gus ini punya tabel, sebut Tabel Pegawai ..
> > Mas Gus ini mungkin mo tau query apa aja yg udah dilakuin ke Tabel 
> Pegawai
> > (mo UPD, DEL, INS, SEL dll) .. bukan begitu Mas Gus?
> >
> > klo gitu sih yaa bikin lagi aja tabel lagi, misalnya Tabel QPegawai ..
> > isinya cukup 1 field tipe string/long text
> > jadi tiap bikin query ke tabel Pegawai, masukin query tsb ke tabel 
> QPegawai
> > misal :
> > Mas Gun mo liat pegawai dgn NIP 3201
> > pastikan pake SELECT * FROM Pegawai WHERE NIP=3201
> > naaah di bawahnya eksekusi aja INSERT INTO QPegawai VALUES ('SELECT 
> * FROM
> > Pegawai WHERE NIP=3201')
> > begitu ..
> >
> > BTW.. maksutnya temporary tabel itu apa yak?
> > CMIIW, maaf saya awam ;)
> >
> > On 5/31/07, Toni Rahayu <[EMAIL PROTECTED] 
> <mailto:toni.rahayu%40gmail.com>> wrote:
> >>
> >>
> >>
> >> Saya bingung mas,
> >> yang dimaksud itu ngecek query atau ngecek data yang masuk ?????
> >>
> >> rgds
> >>
> >> "Akhmad Aldi" <[EMAIL PROTECTED] <mailto:aldi141081%40gmail.com> 
> <aldi141081%40gmail.com>> on
> >> 05/31/2007 02:09:23 AM
> >>
> >> Please respond to [email protected] 
> <mailto:indoprog-vb%40yahoogroups.com><indoprog-vb%40yahoogroups.com>
> >>
> >> To: [email protected] 
> <mailto:indoprog-vb%40yahoogroups.com> <indoprog-vb%40yahoogroups.com>
> >> cc: (bcc: Toni Rahayu/IT/domino_srv)
> >>
> >> Subject: Re: [indoprog-vb] Nangkep Temporary Table
> >>
> >> bikin tabel lagi, utk nampung smua query ke tabel itu ;)
> >>
> >> klo pake AS400 sih ada sistem JOURNAL ...
> >>
> >> On 5/30/07, gus <[EMAIL PROTECTED] 
> <mailto:penakluk82%40yahoo.com.au> <penakluk82%40yahoo.com.au>>
> >> wrote:
> >> >
> >> >
> >> >
> >> > Halo teman2,
> >> >
> >> > Gw bikin local teporary table, trus dimasukan beberapa data.
> >> > Masalahnya gimana caranya kita ngecek(query) apa saja data yang telah
> >> > masuk kedalam tabel temporary tersebut ?
> >> >
> >> > Terimakasih atas pencerahannya
> >> >
>
>  


Kirim email ke