Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara memilih nilai atribut xsi:type di SQL Server?

Tanpa menentukan koleksi, ini berfungsi dengan baik untuk saya:

DECLARE @X XML
SET @x = N' 
<parameters xmlns="http://www.educations.com/Search/Parameters.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <parameter  xsi:type="category" categoryID="38" />
</parameters>'
;

WITH    XMLNAMESPACES
        (
        'http://www.educations.com/Search/Parameters.xsd' as p,
        'http://www.w3.org/2001/XMLSchema-instance' as xsi
        )
SELECT  @X.value('(/p:parameters/p:parameter/@xsi:type)[1]','nvarchar(max)')

Bisakah Anda memposting konten search.SearchParameters ?

Pembaruan:

Pada XML terikat skema , ini sepertinya tidak mungkin.

Anda dapat mentransmisikan kolom Anda menjadi XML tipe bebas :

WITH    XMLNAMESPACES
        (
        'http://www.educations.com/Search/Parameters.xsd' as p,
        'http://www.w3.org/2001/XMLSchema-instance' as xsi
        )
SELECT  CAST(@X AS XML).value('(/p:parameters/p:parameter/@xsi:type)[1]','nvarchar(max)')

(tetapi Anda tidak akan dapat menggunakan XML indeks apa pun di kolom Anda), atau lakukan pemeriksaan boolean pada jenis tertentu:

WITH XMLNAMESPACES
        (
        'http://www.educations.com/Search/Parameters.xsd' as p
        )
SELECT @X.query('(/p:parameters/p:parameter)[1] instance of element(*, p:category?)')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pilih semua database di sysobjects yang memiliki tabel bernama 'mytable' terlepas dari skema?

  2. T-SQL Lewati Ambil Prosedur Tersimpan

  3. Kinerja bcp/BULK INSERT vs. Parameter Bernilai Tabel

  4. Apakah mungkin membuat Database di SQL Server dengan PowerShell?

  5. Bagaimana sp_describe_first_result_set Bekerja di SQL Server