Credit: Dr. Herong Yang [www.herongyang.com]
C:\>sqlcmd -S localhost -U sa -P xxxx
1> -- Set DBPMSPemasaran as the current database
2> USE DBPMSPemasaran;
3> GO
Changed database context to 'DBPMSPemasaran'.
1> -- Create a new server login name: PMSPemasaran
2> CREATE LOGIN PMSPemasaran WITH PASSWORD = 'xxxxx'
3> GO
1> -- Create a new database user linked to the login name
2> CREATE USER PMSPemasaran FOR LOGIN PMSPemasaran;
3> GO
1> -- Grant database ALTER permision to the user
2> GRANT ALTER To PMSPemasaran;
3> GO
1> -- Grant database CONTROL permision to the user
2> GRANT CONTROL To PMSPemasaran;
3> GO
Here is what I did to test this new login name and user: PMSPemasaran
C:\>sqlcmd -S localhost -U PMSPemasaran -P xxxxx
1> -- Set DBPMSPemasaran as the current database
2> USE DBPMSPemasaran;
3> GO
Changed database context to 'DBPMSPemasaran'.
1> -- Create a new table
2> CREATE TABLE Test (ID INT);
3> GO
1> -- Drop the table
2> DROP TABLE Test;
3> GO
11.16.2009
Create New User in SQL Server
5.04.2009
Passing a list/array to an SQL Server stored procedure
Just what I need at the moment. Nice article.
9.03.2008
Antisipasi Time Out dengan Cara Barbar
Hari ini berhadapan dengan time out SQL Server, yg bikin program saya melempar eksepsi dan berhenti melakukan tugas mulianya, mendownload ratusan ribu PO dari SAP untuk web reporting. Time out delete statement.
delete from sap_mseg where mblnr in (select mblnr from sap_mkpf where status = 'NEW')
Apa akal?
For i = 0 To 1000
delete from sap_mseg where mblnr in (select TOP 1000 mblnr from sap_mkpf where status = 'NEW')
End For
Tau dimana salahnya? TOP 1000 itu membuat record yang di select itu-itu aja, kemungkinan besar sudah di delete di looping pertama. Dan looping kedua sampai ke 1000 akan menghasil 0 records affected. Selanjutnya?
For i = 0 To 1000
delete TOP (1000) from sap_mseg where mblnr in (select mblnr from sap_mkpf where status = 'NEW')
End For
Lalu untuk mengantisipasi looping 1000 kali masih menyisakan record yang belum terdelete:
delete from sap_mseg where mblnr in (select mblnr from sap_mkpf where status = 'NEW')
Barbar ya? Ga ped..
at 9/03/2008 05:28:00 PM 0 comments
Labels: SQL
8.22.2008
Sebuah SQL Statement untuk Dynamic Search
Tulisan ini didedikasikan untuk Pak Firman, bos saya dulu di Jatis Ecom. Copyright ide ini milik beliau.
Pernah punya form yang isinya parameter search? Yang field-nya boleh diisi boleh tidak? Terus SQL statement nya nggak ditanem di dalam koding? Say... pake ibatis atau web.config, app.config, setting.ini, sqlserver.properties? Galaxy developers, how are you guys today *loss focus*
Kalo SQL statement ditanem di dalam koding, remeh, tinggal pake IF, ya kan? Kalo SQL nya di luar? Mesti bikin banyak, sebanyak parameter search yang boleh kosong? Nggak dong.. pake aja parameter dummy.
Gini, anggap aja kita punya 2 parameter search, NAMA dan NIK. Dua-duanya boleh kosong. Anggap ada tabel pegawai, fieldnya NAMA, NIK, ALAMAT.
Maka SQL defaultnya akan begini:
SELECT nama, nik, alamat
FROM pegawai
WHERE nama = :parameter_nama: and
nik = :parameter_nik:
Jika isi parameter adalah string kosong alias '', maka query di atas bakal mengembalikan hasil karyawan dengan NIK = '' dan NAMA = ''. Padahal user maunya kalo isi parameter kosong, maka query harus mengembalikan hasil seluruh isi tabel.
Caranya? Ganti SQL nya dengan yang ini:
SELECT nama, nik, alamat
FROM pegawai
WHERE ( nama = :parameter_nama: OR 1 = :parameter_nama_kosong: ) and
( nik = :parameter_nik: OR 1 = :parameter_nik_kosong: )
Kalau NAMA = '', maka :paramater_nama_kosong: diisi 1. Otherwise, isi :parameter_nama_kosong: dengan apa saja selain 1. Lakukan hal yang sama untuk NIK dengan mengisi :parameter_nik_kosong:. Done.
Gimana? Got it?
at 8/22/2008 02:00:00 PM 0 comments
Labels: SQL
6.13.2007
Apa Saja yang Ada Setelah Tanda "/*+" Part 1
Table-access Hints
- INDEX ( Alias_Name Index_Name)
This directs Oracle, when possible, to access the alias Alias_Name using the index named Index_Name. Repeat this hint for each index/alias combination you need to control. - FULL ( Alias_Name)
This directs Oracle, when possible, to access the alias Alias_Name using a full table scan. Repeat this hint for each full table scan you require. - INDEX_DESC ( Alias_Name Index_Name)
This directs Oracle, when possible, to access the alias Alias_Name using the index named Index_Name, reaching the rows in descending order (the reverse of the normal index-sorted order). Repeat this hint for each index/alias combination you need to control, although it is unlikely you will need it more than once in a query.