Chandrashekar
2/12/2015 - 1:04 PM

XML String to table

XML String to table

exec Usp_UpdateRatingPMasterEmployees 
@EngDetails=N'<Engineer><Row><TCIAssessmentResultId>188</TCIAssessmentResultId><UserId></UserId><ActivityId>12</ActivityId><Rating>1</Rating><AssessmentMode>SA</AssessmentMode></Row>
						<Row><TCIAssessmentResultId>189</TCIAssessmentResultId><UserId></UserId><ActivityId>13</ActivityId><Rating>1</Rating><AssessmentMode>SA</AssessmentMode></Row></Engineer>'
						
						
CREATE TABLE #TEMP (TCIAssessmentResultId VARCHAR(25), UserId VARCHAR(50), ActivityId VARCHAR(25), Rating VARCHAR(25), AssessmentMode VARCHAR(100))


		IF @EngDetails <> ''
		BEGIN
			DECLARE @hdoc INT


			EXEC sp_xml_preparedocument @hdoc OUTPUT, @EngDetails


			INSERT INTO #TEMP
			SELECT *
			FROM OPENXML(@hdoc, '/Engineer/Row', 2) WITH (TCIAssessmentResultId VARCHAR(25), UserId VARCHAR(50), ActivityId VARCHAR(25), Rating VARCHAR(25), AssessmentMode VARCHAR(100))


			EXEC sp_xml_removedocument @hdoc
		END
		
	-----------------------------------------------------------------------------------------
	
	DECLARE @xmlPortfolio VARCHAR(max) = '<Root><Row><PortfolioId>1</PortfolioId></Row><Row><PortfolioId>2</PortfolioId></Row></Root>'
	DECLARE @tblPortfolio TABLE (PortfolioId INT)

	IF @xmlPortfolio <> ''
	BEGIN
		DECLARE @hdoc INT

		EXEC sp_xml_preparedocument @hdoc OUTPUT, @xmlPortfolio

		INSERT INTO @tblPortfolio
		SELECT *
		FROM OPENXML(@hdoc, '/Root/Row', 2) WITH (PortfolioId INT)

		EXEC sp_xml_removedocument @hdoc

		SELECT *
		FROM @tblPortfolio
	END