How to find the last time SQL Server was started? Part l

In this blog, let’s take a look at different ways we can check the date and time SQL Server was started last time. There are multiple ways to do it and each of them has its pros and cons.

Using TempDB

The first method we shall look is to see when was the TempDB created. If you recollect,  one of the first things you have learnt about TempDB is it a database used to store objects temporarily and is refreshed/ recreated every time SQL Server is started. Here we would use the creation time of TempDB to determine when was the SQL Server started last time. To do this, open SQL Server Management Studio, go to object explorer, expand databases node/folder. Expand System databases and right-click on Tempdb as shown below and choose properties. 

Database properties window of Tempdb is displayed. In the very first screen when the General page is selected you can notice the Date Created column (highlighted below)…

This way of finding information from Tempdb creation is the easiest way I feel. This step is

SQL Server Error Log

Another way of finding the same information is from the SQL Server Error Logs. This is also one of the easier ways of finding the SQL Server start time, but can be tricky sometimes, which I shall explain in a while..

First let’s take a look at the steps to perform this task. In object explorer, expand the Management node and find SQL Server Logs. Right click on SQL Server Logs and go to View –> SQL Server Log (as shown below). These SQL Server Logs contain very important information regarding that SQL Server. Every time SQL Server is started, entries are written in the SQL Server Log.

When the entries in Error Log are displayed, you can scroll down to the row which contains the SQL Startup information. In the picture below, look at the entry at 8/27/2011 7:48:06 PM.

It looks like you could find the startup information in SQL Error Log easily, but in some cases it might not be that way. Every time a database backup is performed, there is an entry in the SQL Server Error Log which on an SQL Instance with multiple databases will result in a large number of entries and it would make it difficult to find this information easily. Also, in some cases the Error Log would be regularly recycled in order to ensure that it is easier to read the Error Log and once the maximum number of Error Logs are reached, SQL Server disposes the oldest Error Log when it has to create a new one.

There are other ways to find the SQL Server startup time, which we shall look in my next blog.

Part 2 of this blog can be found here How to find the last time SQL Server was started? Part ll

Do you like this site? Like our FB page @\LearnSQLWithBru so that, you know when there is a new blog post.

–Bru Medishetty

Download SQL Server 2008 SP3

Microsoft has recently announced Service Pack 3 for SQL Server 2008. There is a separate file for each version (IA64, x86 and x64), download those that apply to your SQL Server installation.. Please visit the download page here..   Service Packs are released to address known issues and bugs and also few enhancements to various sections of the SQL Server product. To find a list of bugs and issues that are addressed in SQL Server 2008 SP3, please visit the link

Some of the enhancements are:

  • Enhanced upgrade experience from previous versions of SQL Server to SQL Server 2008 SP3. Increased performance & reliability of the setup experience
  • In SQL Server Integration Services logs will now show the total number of rows sent in Data Flows.
  • Enhanced warning messages when creating the maintenance plan if the Shrink Database option is enabled.
  • Resolving database issue with transparent data encryption enabled and making it available even if certificate is dropped.
  • Optimized query outcomes when indexed Spatial Data Type column is referenced by DTA (Database Tuning Advisor)
  • Superior user experience with Sequence Functions (e.g Row_Numbers()) in a Parallel execution plan.

And last but not the least, before installing the SP3 take a minute to read the SQL Server 2008 SP3 release notes

Do you like this site? Like our FB page @\LearnSQLWithBru so that, you know when there is a new blog post.

– Bru Medishetty

Scripting database objects in SQL Server 2008

In this article, we would go through the steps to script the objects in a database using SQL Server 2008. This might be required when we need to setup a database similar in structure to your existing database and move the data at a later time. Situations like setting up a new database on another server when performing a side-by-side upgrade or setting up development or training system. The steps explained here serve the task of setting up the initial database and SSIS or other tools can be used to move data.

Let’s take a look at the steps.

Right click the database which contains the objects to be scripted, from the context menu, choose Tasks and Generate Scripts. (Picture below)

The script wizard dialog box is started and Select Database step is displayed. (Picture below). The database on which we right clicked is selected by default in this step, you can alternately switch to a different database by selecting the database name in the list. I would like to script the reportServer database on my named instance LEARNSQLWITHBRU, hence the database name ReportServer$LEARNSQLWITHBRU. Click Next button to move to the next step.

In this example, I chose Script all objects in the selected database check box at the bottom in order to script all the objects in a sigle step, alternately if you wish to script a selected list of objects, you may want to click next without selecting  the check box.

Since this blog does not cover the other option, I shall give a brief description of what additonal steps would come up at each subsequent steps.

The following step, Choose Scripts Options (picture below) is the next step in the wizard, no matter what option you choose (all objects to script or individual objects). There are several options that you can choose when the objects are scripted. I am using SSMS in SQL 2008 and there are few additional options and changes in default values for few options, when compared to that of SQL 2005. For example, the option Script Indexes is set to True in SQL 2008 where as in SQL 2005 it is false and Script Data and Script Data Compression Options are some of the new options added in SQL 2008.

All of the options are Boolean values and you can change to True or False depending on your choice.  I am changing the Script Data option to True in the picture below.

Click next to continue to the Output Options (picture below). Remember if you have chosen not to script all objects in the database, there are few additional steps that require you to choose the Object types you want to script, and based on the different object types you selected (Schema, Stored Procedures, Tables etc), you get a step for each object type, where you have a choice to select desired objects individually or select all of the objects in that type. After choosing the objects in each object type you would finally come to the next step, Output Option.

There are 3 different destination options you can choose for the output, the default option is the Script to New Query Window when selected, would script the objects and open a new query in the Management Studio and displays the scripts. You can also choose to place the scripts in the clipboard for pasting into a text editor or a separate file that you many have opened, but remember to paste the script as soon as the wizard is completed, since the clipboard contents are not persisted, it may be overwritten if you happen to copy something else into the clipboard.

The Script to file option enables us to store the script to a file in the file system and here is another new addition in SQL Server 2008.   You have a choice to store the entire script in single file or each object script in an individual file; Unicode text format is an additional option available to store the scripts and it is the default in SQL Server 2008. Click Next in the dialog box to continue.

All the required input from the user is available and the wizard continues to the next step, it generates the scripts for all the objects of the database and also generates the scripts for indexes, constraints for the tables. In this example since we have chosen to script the data for the tables, the Insert statements will also be generated by the wizard, due to this it may take several minutes depending on the size of the tables. The image displayed below is the wizard at work in generating the Objects.

Once the wizard completes the scripting, a new query window is opened (depending on our choice). The notable enhancement in SQL Server 2008 is that the Insert statements are also generated as script, which is readily available to run.

One important point to be noted is that this feature is available when the Management Studio is SQL Server 2008 and it does not necessarily need that the database we are scripting should also be of SQL Server 2008. For this demonstration, I used a SQL Server 2005 database scripted using SSMS 2008.

— Bru Medishetty