A function is a piece of self-contained code that performs some process or calculation and returns a value back to the calling program.
SQL Server 2008 comes with hundreds of built-in functions for you to use.
Notice that the function name is followed by parentheses. Without these, SQL Server would think that
GETDATE is a column name in a
table and would generate an error. The parentheses are empty because the
GETDATE function accepts no arguments.
Some functions accept more than one argument. For example, the
function, which converts data from one data type to another,
accepts two arguments:
The value to be converted
The data type to which it should be converted
is a unique function because the return data type is not fixed, but is determined by the Transact-SQL programmer as an argument.
This is illustrated in the following SlideShow.
Global variables were used in prior versions of SQL Server, and were available to all procedures that had access to a connection.
SQL Server set the value of these variables, based on certain conditions. In SQL Server 2008, global variables have been replaced with functions,
but these function names all begin with
@@. For example
, @@LANGID returns the currently selected language ID for SQL Server.
You call it like it is any other function, like this:
The Transact-SQL statement above is actually a function within a function.
This is a very common situation in SQL Server. A function within another function is called nesting
There are a couple of things to keep in mind when you nest functions:
SQL Server evaluates functions from the inside out. This means that the innermost function within parentheses is evaluated first.
You must be aware of the data type returned by the innermost functions to the next level, as well as the data type expected by the next
level. If there is a mismatch of data types, an error will result.
In the next lesson, common ways in which functions are used will be discussed.