Table-Valued
Parameters is a new feature introduced in SQL SERVER 2008. In earlier versions
of SQL SERVER it is not possible to pass a table variable in stored procedure
as a parameter, but now in SQL SERVER 2008 we can use Table-Valued Parameter to
send multiple rows of data to a stored procedure or a function without creating
a temporary table or passing so many parameters. It helps in using complex
business logic in single routine. They reduce Round Trips to the server making
the performance better.
Table-valued
parameters must be passed as READONLY parameters to SQL routines. You cannot
perform DML operations like UPDATE, DELETE, or INSERT on a table-valued
parameter in the body of a routine. You cannot use a table-valued parameter as
target of a SELECT INTO or INSERT EXEC statement. A table-valued parameter can
be in the FROM clause of SELECT INTO or in the INSERT EXEC string or
stored-procedure.
User-defined table types have the following
restrictions:
- A user-defined table type cannot be used as a
column in a table or a field in a structured user-defined type.
- Alias types based on a user-defined table type
- The [NOT FOR REPLICATION] option is not
allowed.
- CHECK constraints require a computed column to
be persisted.
- The primary key on computed columns must be
PERSISTED and NOT NULL.
- A nonclustered index cannot be created on a
user-defined table type unless the index is the result of creating a
PRIMARY KEY or UNIQUE constraint on the user-defined table type. (SQL
Server enforces any UNIQUE or PRIMARY KEY constraint by using an index.)
- The user-defined table type definition cannot
be modified after it is created.
- User-defined functions cannot be called within the definition of computed columns of a user-defined table type.
No comments:
Post a Comment