Monday, January 22, 2007

Assign Value to Variable Using Dynamic SQL

Assign Value to Variable Using Dynamic SQL

DECLARE
@WhereClauseColumnName varchar(10)
, @ParmDefinition nvarchar(100)
, @End nvarchar(12)
, @SQL nvarchar(4000)


----- SET value for @WhereClauseColumnName
SELECT
@WhereClauseColumnName = 'SomeData'

SELECT
@ParmDefinition = '@C nvarchar(100) OUTPUT'

SET @SQL = '
SELECT TOP 1
@C = T.ColumnName
FROM
dbo.TableName AS T
WHERE
T.ColumnName NOT IN (
SELECT TOP ' + @MerchCount + '
BW2.ColumnName
FROM
dbo.TableName AS BW2
WHERE
BW2.WhereClauseColumnName = ' + @WhereClauseColumnName + '
ORDER BY
BW2.ColumnName)
AND T.WhereClauseColumnName = ' + @WhereClauseColumnName + '
ORDER BY
T.ColumnName'

EXECUTE sp_executesql @SQL, @ParmDefinition, @End OUTPUT

No comments: