Tuesday, July 2, 2013

Dynamically insert row into column

--I have referred AdventureWorks database to demonstrate this example

Suppose I have created a Demo1 table

Create
Table Demo1 (Address1 Varchar(50),Address2 Varchar(50),Address3 Varchar(50),Address4 Varchar(50),Address5 Varchar(50),Address6 Varchar(50),
Address7 Varchar(50),Address8 Varchar(50),Address9 Varchar(50),Address10 Varchar(50))\

 
Select * from Person.Address where AddressID<=10


--Then I want to refer AddressLine1 of Person.Contact table and insert this values into a single row dynamically


DECLARE
@TBLREPORT TABLE (ID INT IDENTITY(1,1),AddressID int,AddressLine1 NVARCHAR(MAX))

DECLARE
@SQL NVARCHAR(MAX)

DECLARE
@ROW_1 NVARCHAR(MAX)

SET
@ROW_1=''

Insert
Into @TBLREPORT

Select
AddressID,AddressLine1 from [AdventureWorks].[Person].[Address] where AddressID between '100' and '109'

SELECT
@ROW_1=@ROW_1+''''+AddressLine1+''' AS [Address_'+CAST(ID AS VARCHAR(2))+'],'FROM @TBLREPORT ORDER BY ID

SET
@SQL=''

SET
@SQL= 'INSERT INTO Demo1 SELECT '+ SUBSTRING(@ROW_1,1,LEN(@ROW_1)-1)

EXEC
(@SQL)

Select
* from Demo1

--Now you check  the output

No comments:

Post a Comment