Home
> SQL Server Questions, XML > Parse or Query XML column with XMLNAMESPACES (xmlns namespace) – MSDN TSQL forum
Parse or Query XML column with XMLNAMESPACES (xmlns namespace) – MSDN TSQL forum
–> Question:
We have SQL audit information.
We would like to select XML column in some user friendly way.
CREATE TABLE [dbo].[audit]( [server_instance_name] [NVARCHAR](128) NULL, [statement] [NVARCHAR](4000) NULL, [additional_information] XML NULL ) INSERT INTO [dbo].[audit]([server_instance_name],[statement],[additional_information]) VALUES('srv1','sp_addlinkedsrvlogin','') INSERT INTO [dbo].[audit]([server_instance_name],[statement],[additional_information]) VALUES('srv2','','<action_info xmlns="http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data"><session><![CDATA[Audit$A]]></session><action>event enabled</action><startup_type>manual</startup_type><object><![CDATA[audit_event]]></object></action_info>') SELECT * FROM [dbo].[audit]
Output of the XML column:
Required Output:
–> Answer:
;WITH XMLNAMESPACES('http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data' as ns) SELECT [server_instance_name] ,[statement] ,[additional_information] ,t.c.value ('ns:session[1]', 'varchar(50)') AS session ,t.c.value ('ns:action[1]', 'varchar(50)') AS action ,t.c.value ('ns:startup_type[1]', 'varchar(50)') AS startup_type ,t.c.value ('ns:object[1]', 'varchar(50)') AS object FROM [audit] as a OUTER APPLY a.additional_information.nodes('//ns:action_info') as t(c) GO -- OR -- ;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data') SELECT [server_instance_name] ,[statement] ,t.c.value ('session[1]', 'varchar(50)') AS session ,t.c.value ('action[1]', 'varchar(50)') AS action ,t.c.value ('startup_type[1]', 'varchar(50)') AS startup_type ,t.c.value ('object[1]', 'varchar(50)') AS object FROM [audit] as a OUTER APPLY a.additional_information.nodes('//action_info') as t(c) GO
Drop table finally
DROP TABLE [audit] GO
Ref link.
Categories: SQL Server Questions, XML
MSDN TSQL forum, Parse XML, Query XML Column, XML SQL
Comments (0)
Trackbacks (0)
Leave a comment
Trackback