Dnevni zagon DTSX paketa v MS SQL 2005
Ena izmed novosti v MS SQL 2005 je ta, da se dtsx paketi kreirajo znotraj Visual Studia 2005.
V tem vodiÄu bom pokazal kako narediti dtsx patek, ki bo skrbel za dnevni prenos podatkov iz enega na drugi sql strežnik.
Nov projekt naredimo takole:
File->New->Project->Bussines Intelligence projects->Integration Services Project
![]()
Najlažje naredimo nov dtsx paket s pomoÄjo Äarovnika:
Solution Explorer -> desni klik na “SSIS Packages” -> SSIS Import and Export Wizard

Ko Äarovnik zahteva podatke o izvornem stežniku vpiÅ¡emo vse potrebne podatke in izberemo izvorno bazo.
![]()
Enako naredimo še za ciljni strežnik:
![]()
Odvisno od tega za kaj želimo narediti izberemo eno od dveh možnosti. Prva možnost je tudi enostavnejša.
![]()
Na levi izberemo tabelce iz katerih bomo kopirali podatke, na desni pa tabelce kamor bodo podatki skopirani.
V kolikor boste prenaÅ¡ali veliko tabel oznaÄite “Optimize for many tables”.
![]()
ÄŒe se izvorna in ciljna polja razliÄno imenujejo je potrebno klikniti “Edit…” ter doloÄiti katero izvorno polje se bo preneslo v katero ciljno polje.
ÄŒe boste vsakiÄ prenaÅ¡ali vse podatke, potem izberite Å¡e “Delete rows in destination table”, zato da se zapisi ne bodo podvajali.
![]()
Samo še: Next->Finish->Close in dtsx paket je narejen, ni se pa še izvršil. Paket poženete s tipko F5.
ÄŒe ni nobene napake bo diagram parkrat zeleno/rumeno utripnil nato pa povsem pozelenel.
Smo že na pol poti do cilja.
Kliknite “Stop debugging” kvadratek in gremo naprej.

Desno spodaj kjer so “Properties” poiÅ¡Äite “Protection level” ter ga nastavite na “EncryptSensitiveWithPassword”. Privzeta nastavitev “EncryptSensitiveWithUserKey” namreÄ ne omogoÄa zagona paketka na drugih raÄunalnikih/strežnikih.

Pri “Package password” pa kliknite na gumb s tremi pikami, ter dvakrat vpiÅ¡ite geslo, ki ga boste kasneje uporabili kot parameter klica paketa.
Pritisnite Å¡e “Ctrl-Shift-B” in paket je popolnoma dokonÄan.
Dnevni zagon paketa
Paket kliÄemo iz CommandPrompt-a takole:
dtexec /F "c:\temp\sql\tutorial\Paketek.dtsx" /de geslo
![]()
Pravilna sintaksa je torej dtexec /F temu sledi pot do datoteke “c:\temp\sql\tutorial\Paketek.dtsx” nato /de kot decrypt ter nato vaÅ¡e geslo ki ste ga doloÄili v Visual Studiu.
Dnevni zagon tega lahko naredite tako, da naredite datoteko npr. kopiraj.bat v katero zapišete:
dtexec /F "c:\temp\sql\tutorial\Paketek.dtsx" /de geslo
Nato pa preko Control Panel->Scheduled tasks->Add New Scheduled task dolÄite kako pogosto se naj ta bat file poganja.
Drugi naÄin kako narediti dnevni zagon paketa pa je s pomoÄjo JOB-a v SQLu.
Tudi iz SQL queryja je namreÄ mogoÄe dostopati do CMD-ja, preko procedure xp_cmdshell.
Le ta je zaradi varnosti privzeto onemogoÄena, vendar pa jo lahko omogoÄite takole:
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
Ko je xp_cmdsheel omogoÄena lahko kliÄemo paket preko:
exec master.dbo.xp_cmdshell 'dtexec /F "c:\temp\sql\tutorial\Paketek.dtsx" /de geslo'
Torej vse kar je še potrebno storiti je da v SQL Server Management Studiu na želenem strežniku izberemo:
SQL Server Agent -> Jobs -> desni klik na Jobs in NewJob.

Pog General vpiÅ¡emo ime job-a. Pri Steps->New vpiÅ¡emo Step Name: KlicPaketka, ter pri Command: exec master.dbo.xp_cmdshell ‘dtexec /F “c:\temp\sql\tutorial\Paketek.dtsx” /de geslo’
![]()
Pri Schedules->New pa doloÄimo kdaj naj se ta paketek izvaja.
To je to:)
November 10th, 2007 at 7:47 pm
Great work!