2012-10-15 19 views
12

Olası Çoğalt:
SQL: Select dynamic column name based on variableSQL Server sütun adı olarak ifadeyi seçmek için değişken uzatabilir

Aşağıdaki basit select deyimi vardır:

DECLARE @value varchar(10) 
SET @value = 'intStep' 

SELECT @value FROM dbo.tblBatchDetail 

ben

denediniz
SELECT CAST(@value AS varchar(10)) FROM dbo.tblBatchDetail 

ve tüm ı intstep

SORU bir listesini almak: Bu açıklamaya sütun adı olarak değişken geçirebilirsiniz? Ya da SQL Server 2008 (9.0 RTM) kullanıyorum bu

yapmanın en iyi yolu nedir

Bu saklı yordam Sen kullanamazsınız

+1

Bu sorunun bir kopyası olduğunu düşünüyorum [Basit SQL'ye bir değişken ekleyerek bir sütun adı belirtmek için dinamik SQL kullanma sorgu] (http://stackoverflow.com/questions/7123659/using-dynamic-sql-to-specify-a-column-name-by-adding-a-variable-to-simple-sql-qu) – Spevy

cevap

26

önceden

Teşekkür olacak sütun veya diğer sistem nesnelerini bağlamak için değişken adlar, dinamik sql gerekir

DECLARE @value varchar(10) 
SET @value = 'intStep' 
DECLARE @sqlText nvarchar(1000); 

SET @sqlText = N'SELECT ' + @value + ' FROM dbo.tblBatchDetail' 
Exec (@sqlText) 
+0

alıyorum Bu hata Msg 2812, Seviye 16, Durum 62, Satır 6 'SELECT intStep FROM dbo.tblBatchDetail' saklı yordam bulunamadı. –

+2

@sqlText etrafında parenthesys için özür dilerim, cevap güncellendi – Steve

+0

şimdi çalışıyor teşekkürler –

İlgili konular