SQL 2005: A Sample of Using XQuery

XQuery is a new language for querying XML data that allows navigational access based on XPath 2.0. Today I would like to give you a very simple XQuery sample. In this sample I will show you how to pass multi-valued parameter to a stored procedure. The stored procedure uses XQuery to get a list of values passed in.

    -- create a table
    CREATE TABLE [dbo].[student](
             [id] [int] NOT NULL,
             [name] [nvarchar](50),
             [ssn] [varchar](11),
             CONSTRAINT [PK_student] PRIMARY KEY CLUSTERED 
            (
                [id] ASC
            ) ON [PRIMARY]
    GO

    -- add a few rows for testing
    INSERT student VALUES(1, 'andrew',  '201-98-9238')
    INSERT student VALUES(2, 'lindsay', '656-89-9238')
    INSERT student VALUES(3, 'david',   '555-22-1111')
    GO

    -- create a stored procedure
    CREATE PROCEDURE get_students
    (
    	@ids AS XML
    )
    AS
    BEGIN
    	SELECT *
    	FROM student
    	WHERE id IN (SELECT xref.value('.', 'int') FROM @ids.nodes('/root/id') R(xref))
    END

    -- call the stored procedure passing in an xml parameter node
    DECLARE @ids xml
    SET @ids = 
    '<root>
    	<id>1</id>
    	<id>3</id>
    </root>'

    EXEC get_students @ids

XQuery implemented in SQL 2005 has opened a whole new world for T-SQL programming.

See also

  • SQL: Use Dynamic SQL Query Correctly
  • SQL 2005: Use DMV and CROSS APPLY to Get Cached Plans
  • SQL 2005: Discontinued or Deprecated Features in SQL Server 2005
  • SQL 2005: Default Trace Enabled Option
  • SQL 2005: Column Level Permissions
  • SQL 2005: SQLCMD Supports Parameterized Variables and Macro Features
  • SQL 2005: DTS Has Become SSIS now
  • SQL 2005: Microsoft SQL Server 2005 JDBC Driver
  • SQL 2005: Query Notifications in ADO.Net 2.0
  • SQL 2005: Overcome SQL Index Size Limit
  • SQL 2005: DDL Triggers
  • SQL 2005: Why Should Use 64 Bit Now
  • SQL 2005: How to Rebuild The Master Database
  • SQL 2005: A Little Trick to Install SQL 2005 Onto Your Dirty DEV Machine
  • SQL 2005: New Resource Database
  • SQL 2005: Alter Index Rebuild
  • SQL 2005: XQuery Sample
  • SQL 2005: How to Move Database
  • SQL: Use COALESCE to Generate a List
  • SQL: How to Debug SQL Deadlocks
  • .Net: How to Bypass Strong Name Check
  • Agile: Lean Software Development - An Agile Toolkit
  • ORM: How to Use nHibernate 1.2 to Call Stored Procedure to Return a Dataset Without a Mapping Entity
  • AJAX: ASP.NET AJAX Tips
  • .Net: Debugging Commands
  • .Net: How to Run NUnit And Debug Your Test Fixtures Directly from VS 2005
  • .Net: How to Add Domain User to Local Group
  • .Net: Lock Value Type?
  • .Net: How to Create an Instance of a Generic Type with Parameters
  • .Net: How to Get Address of a Managed Type
  • ORM: New Features of nHibernate 1.2
  • .Net: How to Get System Error Message from HRESULT in Managed Code
  • .Net: Use Windows PowerShell Now
  • WMI: Use WMI to Run Commands on Remote Machine
  • API: GetLogicalProcessorInformation to Detect CPUs
  • .Net: How to Implement Singleton Correctly
  • .Net: There is no MTS object context (Exception from HRESULT: 0x8004E004)
  • .Net: The Net Objectives Pattern Repository
  • Web: Access Denied When ASP.Net Accesses Eventlog
  • Nant: Error Loading GUID of Project
  • AJAX: Ajax in Action
  • DTC: DtcGetTransactionManager Fails
  • .Net: Run .Net 1.1 COM+ Serviced Components Under .Net 2.0 Framework
  • .Net: Debugging Managed Code Tip
  • .Net: Assembly Binding Log Viewer (Fuslogvw.exe)
  • .Net: .Net Framework Design Guidelines
  • .Net: Use Global Catalog and CheckTokenMembership to Check AD Group Membership



  • THIS POST IS PROVIDED "AS-IS" WITH NO WARRANTIES AND CONFERS NO RIGHTS. Build time: Sun 03/30/2008 . ©2007 Dalun Software. All rights reserved. Back to Article List