Once again, we check the presence of each of our variables that we reference. I have provided you with a sample statement for the check of the CompanyName variable (see Listing 2). By now, I am sure that you will be more than comfortable writing the statements (or copying most of them from the InstallSQLServer.bat script) to check for the existence of the other variables.
Listing 2Checking for the Existence of the Variables.
Just be a little careful when you aren't too strict about the parameters that you expect. For example, although we have specified that some parameters are optional in this script, you should still check for them. If they aren't supplied, you should assign a default value rather than error out the script.
The SQLsaPwd parameter is required only if the NTAuthentication variable is set to "No". In this instance, it wouldn't make sense to error out the script if the SQLsaPwd parameter were not supplied.
After we have ensured that the user of our script has provided all of the parameters, we can then generate the .iss file for the installation of SQL Server 2000 SP2. This is a very similar process to creating the .iss file for the installation of SQL Server. Note, however, that this .iss file (for SP2) is a lot less complex than it is for the installation of SQL Server. Most of the hard work is done by the time an installation of an SP is required, so the .iss file does not require as much detail about your specific SQL Server installation.
Listing 3 shows the code and the sections of the .iss file that we will generate.
Listing 3Writing Out the .iss File to Install SP2.
REM Build the auto-answer file for the setup program.
You generate an .iss file for an SP the same way you do for a SQL Server installation. In other words, run the installation program with the command-line switches that we explored in the first article in this series.
As you may have noticed, I already replaced the hard-coded values in the .iss file with my parameters (that is, Collation_Name now has a value of %CollationName%).
The NTAuthentication variable that we use in the .iss file simply specifies the way we want to connect to the SQL Server. That is, with SQL Authentication (NTAuthentication=No), which means that we need to supply a valid password for the "sa" account; or with Windows Authentication (NTAuthentication=Yes), which means that the account we are logged on with must have system admin rights in the SQL Instance that we are upgrading.
After the .iss file has been generated, we copy it to the Windows directory and rename the file to setup.iss. At this point, it is a very easy process to ensure that our .iss file contains the information that we want to configure with our install.
Writing the Code to Actually Install SP2Now the fun stuff! We are ready to install our SP. Check out Listing 4.
Listing 4Calling the Installation Program for SQL Server 2000 SP2.
start /wait "%AppPath%\setupsql.exe" -s -SMS -f1 "%WinDir%\setup.iss"
A requirement of installing SQL Server 2000 SP2 is to ensure that the SNMP service is stopped before installing the SP. If you are modifying this script for other SPs, this is the section that you stop dependant services with. However, be careful of the order in which you stop services; otherwise, errors may be generated. I use the /y switch on the net stop command to automatically stop all dependant services on the SNMP service. (A nice little undocumented feature for you...well, I couldn't find it, at leastJ).
If SNMP is not installed on your machine, you can either comment this line out or ignore the error that will be returned.
There we go. Now that we have launched the installation of SQL Server 2000 SP2, it is a simple case of restarting services, starting with the SQL Server instance, to make sure that everything worked okay. Listing 5 shows you how to restart the services in code.
Listing 5Restarting the Services to Make Sure Our Installation was Successful.
REM Make sure the SQL Server service gets started.