यदि आप कॉलम नाम को गतिशील रूप से निर्दिष्ट करने का प्रयास कर रहे हैं, तो आप गतिशील एसक्यूएल निष्पादित करने पर एक नज़र डाल सकते हैं। हालांकि, आपको पहले इस दृष्टिकोण के खतरों के बारे में पढ़ना सुनिश्चित करना चाहिए:
http://www.sommarskog.se/dynamic_sql.html
उस पृष्ठ से, एक नमूना है जो तालिका नाम को गतिशील रूप से निर्दिष्ट करता हुआ दिखाता है -- आप इसे बदल सकते हैं ताकि यह गतिशील रूप से इसके बजाय कॉलम नाम निर्दिष्ट करे:
CREATE PROCEDURE general_select @tblname nvarchar(128),
@key varchar(10),
@debug bit = 0 AS
DECLARE @sql nvarchar(4000)
SET @sql = 'SELECT col1, col2, col3
FROM dbo.' + quotename(@tblname) + '
WHERE keycol = @key'
IF @debug = 1 PRINT @sql
EXEC sp_executesql @sql, N'@key varchar(10)', @key = @key
तो उदाहरण के लिए यदि आपके पास 'x', 'y', और 'z' नाम के कॉलम वाली 'MyTable' टेबल है, तो यह ऐसा दिखाई दे सकता है:
DECLARE @columnName nvarchar(128)
DECLARE @sql nvarchar(4000)
set @columnName = 'z'
SET @sql = 'SELECT x, y, ' + @columnName + ' from MyTable'
EXEC sp_executesql @sql, N'@columnName varchar(128)', @columnName = @columnName