USE Northwind
GO
CREATE TABLE myTable99(fname char(20), lname char(30), phone char(20))
GO
DECLARE @xml varchar(8000), @data varchar(8000), @tag varchar(255), @sql varchar(8000)
, @fname char(20), @lname char(30), @phone char(20)
SET @xml = '<fname>Brett</fname><lname>Kaiser</lname><phone>555-1234</phone>'
SELECT @tag = '', @data = ''
WHILE LEN(@xml) <> LEN(@tag+@data+@tag)+3
BEGIN
SELECT @tag=SUBSTRING(@xml,CHARINDEX('<',@xml), CHARINDEX('>',@xml))
SELECT @data = SUBSTRING(@xml,LEN(@tag)+1,CHARINDEX('<',@xml,LEN(@tag))-LEN(@tag)-1)
IF @tag = '<fname>'
SELECT @fname = @data
ELSE IF @tag = '<lname>'
SELECT @lname = @data
ELSE IF @tag = '<phone>'
SELECT @phone = @data
SELECT @xml = SUBSTRING(@xml,LEN(@tag+@data+@tag)+2,LEN(@xml)-LEN(@tag+@data+@tag)+2)
SELECT @xml,@fname,@data,@tag,LEN(@xml),LEN(@tag+@data+@tag)+2
END
SELECT @tag=SUBSTRING(@xml,CHARINDEX('<',@xml), CHARINDEX('>',@xml))
SELECT @data = SUBSTRING(@xml,LEN(@tag)+1,CHARINDEX('<',@xml,LEN(@tag))-LEN(@tag)-1)
IF @tag = '<fname>'
SELECT @fname = @data
ELSE IF @tag = '<lname>'
SELECT @lname = @data
ELSE IF @tag = '<phone>'
SELECT @phone = @data
SELECT @sql = 'INSERT INTO myTable99(fname,lname,phone) '
+ 'SELECT ''' + RTRIM(@fname) + ''''
+ ',' + '''' + RTRIM(@lname) + ''''
+ ',' + '''' + RTRIM(@phone) + ''''
SELECT @sql
EXEC(@sql)
SELECT * FROM myTable99
GO
DROP TABLE myTable99
GO
Brett
8-)
Hint: Want your questions answered fast? Follow the direction in this link
http://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspx
Add yourself!
http://www.frappr.com/sqlteam