Este script Bash executa cada arquivo na files
matriz do banco de dados. No entanto, ele cria uma nova sessão sqlcmd para cada arquivo. Existe uma maneira de criar uma única sessão sqlcmd antes do loop e usar essa sessão para todas as execuções de arquivo?
#!/bin/bash
# declare and initialize an array of files to be executed (listed in sequence of execution)
declare -a files=(
'0140_Items.sql'
'0170_Warehouses.sql'
'0190_ItemsAtWarehouses.sql'
)
# loop through files array to execute each file on database
for file in "${files[@]}"
do
sqlcmd -S SQLDEV14 -E -d D7stage -i ".\Modules\\$file" -m 1
done
Se sim, qual é a sintaxe? Pesquisei em blogs e fóruns sobre como fazer isso, mas não encontrei nada que fosse útil.
Se você estiver usando um shell como
bash
você pode concatenar os arquivos e canalizá-los como uma única entidade:Acabei fazendo isso: