Domanda

declare @sImport_Table1 table 
 (
   Id int identity(1,1) ,
   Zone nvarchar(50),
   Sub_Code nvarchar(50),
   Geography nvarchar(50),
   DayOfWeek nvarchar(50)
 )



INSERT INTO @sImport_Table1 SELECT 'A','Z','Geo','SUN'

declare @sZone nvarchar(50)
declare @sSubCode nvarchar(50)
declare @c_Geography nvarchar(50)='Geo'
declare @c_DayOfWeek nvarchar(50)='SUN'
declare @sImport_Table nvarchar(500)='@sImport_Table1'



--SELECT * FROM @sImport_Table1
declare @sQuery nvarchar(4000) 

SET @sQuery='SELECT  '+ @sZone + ' = Zone,'+
                       @sSubCode +' = Sub_Code
              FROM'+ @sImport_Table +
             ' WHERE Geography ='+ @c_Geography +
             ' AND DayOfWeek = '+ @c_DayOfWeek

PRINT @sQuery 

*************** EDITED********************************

declare @sImport_Table1 table 
 (
   Id int identity(1,1) ,
   Zone nvarchar(50),
   Sub_Code nvarchar(50),
   Geography nvarchar(50),
   DayOfWeek nvarchar(50)
 )



INSERT INTO @sImport_Table1 SELECT 'A','Z','Geo','SUN'

declare @sZone nvarchar(50)
declare @sSubCode nvarchar(50)
declare @c_Geography nvarchar(50)='Geo'
declare @c_DayOfWeek nvarchar(50)='SUN'
declare @sImport_Table nvarchar(500)='@sImport_Table1'



--SELECT * FROM @sImport_Table1
declare @sQuery nvarchar(4000) 

SET @sQuery='''SELECT @sZone = Zone, '+
                   '@sSubCode = Sub_Code
          FROM '+ @sImport_Table +
         ' WHERE Geography ='''+ @c_Geography + '''
          AND [DayOfWeek] = '''+ @c_DayOfWeek +''''''

PRINT @sQuery 
sp_executesql @sQuery

PRINT @sZone 
PRINT @sSubCode    
È stato utile?

Soluzione

You have @sZone and @sSubCode which are null. Concatenation with null is always null.

This can make sense.

SET @sQuery='SELECT @sZone = Zone, '+
                   '@sSubCode = Sub_Code
          FROM '+ @sImport_Table +
         ' WHERE Geography ='+ @c_Geography +
         ' AND [DayOfWeek] = '+ @c_DayOfWeek

Notice, that the DayOfWeek is reserved word and must be included in square bracket.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top