Functions Lesson 10
Skills Matrix
Function A function is a piece of code or routine that accepts parameters and stored as an object in SQL Server. The function always returns a result or result set from invocation. A function can be called within a SELECT statement or even a WHERE clause, whereas a stored procedure must be called using an EXEC[UTE] procedure statement.
Function SQL Server supports several types of functions: –Built-in functions –Scalar functions –Inline table-valued functions –Multistatement table-valued functions –CLR functions
Built-in Functions You need to become familiar with a large number of functions provided to you by Microsoft. Aggregate functions perform operations that combine multiple values into one value by grouping, summarizing, or averaging the values.
Built-in Functions
Configuration scalar functions return information about system settings. Cryptographic functions support encryption, decryption, digital signing, and the validation of digital signatures. –EncryptByKey( ) –DecryptByKey( )
Built-in Functions Configuration functions include server_name( ) and db_name( ), which gives you information about server and database configurations, respectively. Cursor functions return information about the status of a cursor. Date and time functions provide you with the capability to manipulate and calculate with dates and time values.
Mathematical Functions
Ranking Functions Ranking functions are nondeterministic functions that return a ranking value for each row in a partition. Ranking functions are new with SQL Server 2005 and allow you to use a rank or a row number within a result set.
Row Set, Security and String Functions Rowset functions return the rowsets that can be used in place of a table referenced in a Transact-SQL statement Security functions return information about users and roles. String functions manipulate character text. Once again, examine each function in turn.
Execution Context Execution context establishes the identity against which permissions are checked. Without specifying the execution context, the user or login calling the module, such as a stored procedure or function, usually determines the permissions invoked.
Three Function Types A scalar function passes and/or returns a single value. A multistatement table-valued function proves to be a combination of a view and a stored procedure. Inline table-valued functions return a table and are referenced in the FROM clause, just like a view.
CLR Functions In the same way you can write managed code procedures, you now can also write a user-defined function in any.NET programming language. Also, as with the scalar functions or a table-valued Transact-SQL function, a managed code (CLR) function can be scalar or table-valued. Before you can use a managed function, you first need to enable CLR support on the server.
Deterministic and Nondeterministric Functions SQL Server marks a function as: –A deterministic function always returns the same result, given a specific input value. –A nondeterministric function always returns a different value each time invoked.
Deterministic Function You can create an index on a computed column if a function is deterministic. –This means whenever you update the row, the index also updates, and you could gain a lot of query performance when using the function in a query expression. User-defined functions are deterministic when they are: –Schema-bound. –Defined with only deterministic user-defined or built-in functions.
CLR Functions As with managed procedures, you use CLR functions to perform complex calculations or conversions that are outside the scope of a data-centric environment, or to create functionality that scopes outside of SQL Server and cannot be resolved within a Transact-SQL function. All functions are deterministic or nondeterministic.
Nondeterministic Built-in Functions SQL Server permits the use of nondeterministic built-in functions within user-defined functions, with the exception of NEWID( ), RAND(, NEWSEQUENTIALID( ), and TEXTPTR( ).
Schema Binding Schema binding connects the function to the object that it references. –All attempts to drop the object referenced by a schema-bound function fails. –To create a function with the WITH SCHEMABINDING option, the following must be true: All views and user-defined functions referenced by the function must be schema-bound as well. All objects referenced by the function must be in the same database.
Summary You learned that functions have three forms: scalar, multistatement table-valued, and inline table-valued. –Scalar types return a single value; for example, GETDATE( ) returns the current day and time. Both forms of table-valued functions return a dataset; for example, rows and columns.
Summary Built-in functions perform common tasks. They have been developed over the years, and their number keeps increasing as new situations warrant the inclusion of new solutions in SQL Server. You can create your own functions.
Summary for Certification Examination Know the use of functions. –Know when to apply any of the three forms to specific scenarios. Know, in general, the built-in functions. –Know, in particular, Substring( ), Datediff( ) and Dateadd( ). Know the consequences of including nondeterministic functions and functions that reference alias data types.