2016-06-04 12 views
0

Ich habe eine Liste der Spaltennamen jeder Vorlage. Wenn eine Vorlage ausgewählt wurde, muss ich nur bestimmte Spalten abrufen, die für diese Vorlage zugeordnet sind. Spaltennamen für die Vorlage wurden in einer separaten Tabelle gespeichert.So holen Sie die Spalte anhand der in anderen Tabellen gespeicherten Spaltennamen mithilfe von SQL Server

Wie man eine Abfrage/Logik dafür bildet? Um Werte für die spezifische Vorlage mithilfe einer gespeicherten SQL Server-Prozedur abzurufen.

+0

Sie müssen entweder eine dynamische Abfrage (ODER) verwenden, in Ihrer Anwendungslogik. – Rahul

+0

Ja, ich habe es durch dynamische Abfrage erreicht. – Thiyagarajan

Antwort

0
declare @query1 nvarchar(max) 
set @query1 =(Select AccessColumns from TemplateAccess where  
[email protected]) 
DECLARE @cols AS NVARCHAR(MAX), 
@query AS NVARCHAR(MAX) 

select @cols = STUFF((SELECT ',' + QUOTENAME(AccessColumns) 
       from TemplateAccess 
       group by AccessColumns 
       order by AccessColumns 
     FOR XML PATH(''), TYPE 
     ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,'') 

set @query = N'SELECT ' + @cols + N' from 
ReportDetail rd inner join [dbo].[Report_DatesDetail] rdd on 
rd.CRIMS_ParentId =rdd.CRIMS_ParentId and rd.CRIMS_ChildId =  rdd.CRIMS_ChildId 
inner join Mas_Application on [Application] = ApplicationName' 

exec sp_executesql @query 
Verwandte Themen