script del driver del server sql sembrano scomodi, c'è un modo migliore per eseguire script sql batch?

4

Ho scritto script sql del driver (è il nome corretto?) per eseguire più script sql 'sub' in ordine, scrivendo errori per registrare file ecc. La mia versione Oracle sembra essere più o meno ok, ma il mio server sql con cui sto lottando. In particolare, quando uno script fallisce, sto ottenendo numeri di linea più grandi dei file per la posizione dell'errore. C'è un "modello" di best practice per questo? Dovrei invece usare dacpacs? Qualsiasi consiglio apprezzato qui. Grazie.

SET NOCOUNT ON
GO

PRINT 'upgrading something'

echo 'do this first'
:r  'this.sql'
echo 'now do that'
:r  'that.sql'

PRINT 'done'
GO
    
posta timB33 21.03.2016 - 10:57
fonte

1 risposta

1

Per l'applicazione che stavamo creando, abbiamo usato DMO SQL e scritto uno strumento C # che utilizzava oggetti DMO e libreria per eseguire tutti gli script. Abbiamo scritto tutte le sceneggiature e creato una guida di stile e una guida di sql. Tutti gli script erano eseguibili (idempotente). Ciò include la creazione di database, permessi utente, ruoli, schemi, procs, tutto. Fondamentalmente avrebbe creato un'istanza completa da zero. Questo ha funzionato bene, ma era molto che dovevamo gestire e assumere.

DacPac sembra nascondere alcuni dei "furbi di mano" per te.

Dovresti usare Dacpac? Se ti piace il modo in cui Dacpac incapsula molti oggetti in un singolo file e consente l'implementazione idempotent, forse è una buona scelta.

L'altro modo è creare scips artigianali e usarli in modo nativo o usare una libreria come SQL DMO. Penso che funzionerà.

    
risposta data 21.03.2016 - 18:45
fonte

Leggi altre domande sui tag