meerdere querys achtereenvolgens draaien op de MSsql server

Status
Niet open voor verdere reacties.

manueld

Gebruiker
Lid geworden
12 feb 2012
Berichten
216
ik heb een MS SQL server 2008r2. hierop draait een database. wat ik graag wil is het volgende. ik wil graag op gezette tijdstippen een import draaien uit een excel file. vervolgens moet deze data vergeleken worden met de doeltabel zodanig dat er updates van bestaande records en toevoegeing van nieuwe records gedaan wordt. vervolgens moet vanuit deze tabel gekeken worden of de klantnaam reeds bestaat in de cunomers tabel. zo ja dan is het goed, zo nee dan een nieuwe klaant aanmaken met de gegevens uit de geimporteerde tabel.

nu mijn vraag.

1- kan ik in sql server sql scripts laten draaien en zo ja hoe
2- kun je hier zaken in zetten zoals bijvoorbeeld in vba zoals if /else en variabelen
3- hoe zorg ik dat dit automatisch gebeurt

ik kan dit via bijvoorbeeld access/vba doen maar dit is niet echt wenselijk. het mooiste is een lokaal script dat doet wat ik wil. ipv via een connectie en software
 
ik kan dit via bijvoorbeeld access/vba doen maar dit is niet echt wenselijk.
Wenselijk of niet, als het goed werkt is er toch niks op tegen? Het gaat er toch om dat je een stabiele werkende oplossing hebt? Ik heb zelf jarenlang via Access allerlei imports en exports gedaan op een SQL server. Gewoon via een mdb-tje en een Scheduled Task, volledig geautomatiseerd. Dus wat zijn dan de zwaarwegende redenen om dat niet zo te doen?
 
het gaat voornamelijk om stabiliteit, beheersbaarheid en serverbelasting. het is een omgeving met zeer veel records. 6 keer daags een import van 25000 records die vervolgens via diverse query's in de juiste tabellen gezet diennen te worden, sommige updaten, sommige nieuw. alles met elkaar een flinke taak. aangezien de infrastructuur momenteel redelijk overbelast is moet ik "slim"programeren en importeren. alle stappen die minder system resources nemen zijn weer een winst


ik probeer momenteel via een tsql query te importeren maar die geeft een fout.

Code:
SELECT * INTO tmptblSopReport FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=c:\temp\1\Rpt_SOP-ALL-0725.xls', [Rpt_SOP$])


Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

we komen er nog niet helemaal uit hoe we dit op kunnen lossen of op een andere manier kunnen uitvoeren
 
het gaat voornamelijk om stabiliteit, beheersbaarheid en serverbelasting. het is een omgeving met zeer veel records.
Ik zie nog steeds niet waarom je dat niet via Access en Scheduled Tasks kan doen. Zoals ik al eerder zei: dat is uiterst stabiel; heb het jaren op die manier op verschillende servers gedaan zonder problemen. Hoe je het ook gaat doen: zodra je het op vaste tijden inplant is elke methodiek afhankelijk van dezelfde omstandigheden. En met een Access database kun je de import lokaal doen, de vergelijking met de server regelen, tijdelijke tabellen maken met de resultaten en die dan gebruiken voor de uiteindelijke mutaties op de server. Jij doet nu, zo te zien, alles gelijk vanuit je Excel data op de server en dat moet haast wel de meest tijdrovende methode zijn die je kunt verzinnen :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan