Solution>> Go to this link http://www.sqlusa.com/bestpractices/dynamicsql/
The best place to learn About dynmaic sql
or see below
USE AdventureWorks2008;
EXEC ('SELECT * FROM Production.Product') -- tsql constant string execution ------------
DECLARE @TableName sysname ='Sales.SalesOrderHeader'
EXECUTE ('SELECT * FROM '+@TableName) -- T-SQL string with variable - dynamic ------------
EXECUTE sp_executeSQL N'SELECT * FROM Purchasing.PurchaseOrderHeader'
------------
DECLARE @SQL varchar(256); SET @SQL='SELECT * FROM Production.Product'
------------
DECLARE @SQL varchar(256); SET @SQL='SELECT * FROM Production.Product'
EXEC (@SQL) -- SQL Server 2008 dynamic SQL query execution
------------
------------
DECLARE @SQL varchar(256), @Table sysname;
SET @SQL='SELECT * FROM'; SET @Table = 'Production.Product'
SET @SQL = @SQL+' '+@Table
PRINT @SQL -- for debugging dynamic SQL prior to execution of generated static code
EXEC (@SQL) -- Microsoft dynamic SQL execution - SQL Server 2005 execute dynamic SQL
-------------- Dynamic queries with local variables and parameter(s) - t-sql parameterized query
-- Parameters are NOT ALLOWED everywhere in an SQL statement - hence dynamic SQL
DECLARE @Color varchar(16) = 'Yellow'
SELECT Color=@Color, ProductCount=COUNT(Color)
FROM AdventureWorks2008.Production.Product
WHERE Color = @Color
/* Color ProductCount
Yellow 36 */------------
-- SQL Server 2012 sp_executeSQL usage with input and output parameters (2008/2005)
DECLARE @SQL NVARCHAR(max), @ParmDefinition NVARCHAR(1024)
DECLARE @ListPrice money = 2000.0, @LastProduct varchar(64)
SET @SQL = N'SELECT @pLastProduct = max(Name)
FROM AdventureWorks2008.Production.Product
WHERE ListPrice >= @pListPrice'
SET @ParmDefinition = N'@pListPrice money,
@pLastProduct varchar(64) OUTPUT'
EXECUTE sp_executeSQL -- Dynamic T-SQL
@SQL,
@ParmDefinition,
@pListPrice = @ListPrice,
@pLastProduct=@LastProduct OUTPUT
SELECT [ListPrice >=]=@ListPrice, LastProduct=@LastProduct
/* ListPrice >= LastProduct
2000.00 Touring-1000 Yellow, 60 */
------------
------------
-- 3-part naming execution of dynamic SQL - Specifying database (USE dbname)
EXEC AdventureWorks2008R2.dbo.sp_executeSQL N'exec sp_help'
------------
For more details about other operations please visit the below link
No comments:
Post a Comment