In my scenario I need to run .sql script at the end of my setup with sqlcmd.exe. But each version of SQL Server uses different paths for sqlcmd.
I'm trying some solutions to use sqlcmd but none work.
As a last test I created an installer just to run my script but even this doesn't recognize sqlcmd as a command.
Is there a way to retrieve the sqlcmd path with a function in order to pass the value to [Run] section?
Any suggestions are welcome.
Thanks
This is my code I'm trying
Main installer.exe
[Setup]
PrivilegesRequired=admin
[Files]
; sql server 2019 Express
Source: "..\PREREQUIREMENTS\SQL\SQLSERVER\2019\SQLEXPR_x64_ENU.exe"; \
DestDir: "{tmp}"; DestName: "SQLSERVER2019.exe"; Flags: ignoreversion; \
MinVersion: 10.0.17134; Tasks: SQL
; sql server 2014 Express
Source: "..\PREREQUIREMENTS\SQL\SQLSERVER\2014\SQLEXPR_x64_ENU.exe"; \
DestDir: "{tmp}"; DestName: "SQLSERVER2014SP3.exe"; Flags: ignoreversion; \
OnlyBelowVersion: 10.0.17134; Tasks: SQL
; sql management studio 18
Source: "..\PREREQUIREMENTS\SQL\SSMS\SSMS-Setup-ENU.exe"; DestDir: "{tmp}"; \
DestName: "SSMS18.exe"; Flags: ignoreversion; Tasks: SSMS
; SQLCMD
Source: "src\DB\ADM_DB_installer.exe"; DestDir: "{tmp}"; Flags: ignoreversion; \
Components: ADM
ADM_DB_installer.exe
[Setup]
PrivilegesRequired=admin
[Run]
Filename: "sqlcmd.exe"; \
Parameters: "-v ADMPRIMARY=""{code:GetSQLVar|DBPATH}"" ADMDATA=""{code:GetSQLVar|DBPATH}"" ADMINDEX=""{code:GetSQLVar|DBPATH}"" ADMLOG=""{code:GetSQLVar|DBPATH}"" -S {code:GetSQLVar|SQLSERVER}\{code:GetSQLVar|INSTANCE} -U sa -P {code:GetSQLVar|SAPWD} -i ""{tmp}\CREATE_ADM_DB_1.0.0.sql"" -o ""{code:GetSQLVar|DBPATH}\log.txt"""