【SQL开源代码栏目提醒】:网学会员--在 SQL开源代码编辑为广大网友搜集整理了:CH21.sql绩等信息,祝愿广大网友取得需要的信息,参考学习。
-- P21-10
SELECT 书籍编号, 书籍名称 FROM 书籍 FOR XML RAW
-- P21-11
SELECT 书籍编号, 书籍名称 FROM 书籍 FOR XML AUTO
-- P21-13a
INSERT INTO 书籍T1 VALUES
('<书籍信息>
<书号>F5341</书号>
<书名>Linux Mail Server 技术实务</书名>
<售价>580</售价>
</书籍信息>')
-- P21-13b
INSERT INTO 书籍T1 VALUES
('<员工信息>
<员工编号>1398</员工编号>
<>王大明</>
</员工信息>')
-- P21-14a
USE 练习02
DROP TABLE 书籍T1
-- P21-14b
CREATE XML SCHEMA COLLECTION FlagBookXMLSchema AS
N'<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" targetNamespace="plexType>
</xsd:element>
</xsd:schema>'
-- P21-15
SELECT * FROM sys.xml_schema_namespaces
-- P21-16a
CREATE TABLE 书籍T1
(编号 INT PRIMARY KEY IDENTITY,
书籍资料 XML(FlagBookXMLSchema)
)
-- P21-16b
INSERT INTO 书籍T1 VALUES
('<员工信息 xmlns="http://FlagBookXMLSchema">
<员工编号>1398</员工编号>
<>王大明</>
</员工信息>')
-- P21-16c
INSERT INTO 书籍T1 VALUES
('<书籍信息 xmlns="http://FlagBookXMLSchema">
<书号>F5340</书号>
<书名>Linux iptables 技术实务</书名>
<售价>620</售价>
<作者>施威铭研究室</作者>
</书籍信息>')
-- P21-17a
INSERT INTO 书籍T1 VALUES
('<书籍信息 xmlns="http://FlagBookXMLSchema">
<书号>F5341</书号>
<书名>Linux Mail Server 技术实务</书名>
<售价>五百八十</售价>
</书籍信息>')
-- P21-17b
INSERT INTO 书籍T1 VALUES
('<书籍信息 xmlns="http://FlagBookXMLSchema">
<书号>F5341</书号>
<书名>Linux Mail Server 技术实务</书名>
<售价>580</售价>
</书籍信息>')
-- P21-19
SELECT 编号, 书籍资料.query('
declare namespace ns="http://FlagBookXMLSchema";
/ns:书籍信息/ns:书名') AS 旗标书籍
from 书籍T1
-- P21-20
SELECT * FROM 书籍T1
WHERE 书籍资料.exist('declare namespace
ns="http://FlagBookXMLSchema";
/ns:书籍信息[ns:书号 = "F5341"]') = 1;
-- P21-21a
SELECT * FROM 书籍T1
WHERE 书籍资料.exist('declare namespace
ns="http://FlagBookXMLSchema";
/ns:书籍信息[ns:书号 = "F5693"]') = 1;
-- P21-21b
UPDATE 书籍T1
SET 书籍资料.modify('declare namespace ns="http://FlagBookXMLSchema";
replace value of (/ns:书籍信息/ns:售价)[1] with 420')
WHERE 书籍资料.exist('declare namespace
ns="http://FlagBookXMLSchema";
/ns:书籍信息[ns:书号 = "F5693"]') = 1
-- P21-21c
SELECT * FROM 书籍T1
WHERE 书籍资料.exist('declare namespace
ns="http://FlagBookXMLSchema";
/ns:书籍信息[ns:书号 = "F5693"]') = 1;
-- P21-22
CREATE PROCEDURE flagproc AS
SELECT 编号, 书籍资料.query(
'declare namespace ns="http://FlagBookXMLSchema";
/ns:书籍信息/ns:书名') AS 旗标书籍
from 书籍T1
-- P21-23a
CREATE ENDPOINT FlagBookEndpoint
STATE = STARTED
AS HTTP (
PATH = '/books',
SITE = '*',
AUTHENTICATION = (INTEGRATED),
PORTS = (CLEAR)
)
FOR SOAP (
WEBMETHOD 'fla
gproc'
(NAME = '练习02.dbo.flagproc'),
WSDL = DEFAULT,
DATABASE = '练习02'
)
-- P21-23b
SELECT * FROM sys.http_endpoints
-- P21-24
DROP ENDPOINT FlagBookEndpoint
-- P21-32
DECLARE @hdoc int -- 宣告文件控制代码变数
DECLARE @doc varchar(4000) -- 宣告文件变数
CREATE TABLE #tempxml (
xmltext varchar(4000)) -- 建立暂存资料表
-- 将档案内容读到暂存资料表中
BULK INSERT #tempxml FROM 'C:\XML\Ch21-5.xml' WITH
(
-- 设定记录分隔字元
ROWTERMINATOR =' |\n'
)
SELECT @doc = xmltext FROM #tempxml
EXEC sp_xml_preparedocument @hdoc OUTPUT, @doc
SELECT *
FROM OPENXML (@hdoc, '/Books/Book')
WITH (
书籍编号 int './bookno', -- 书籍编号栏位对应到 '/Books/Book'
书籍名称 varchar(30) './bookname', -- 下的 'bookno' 元素 (标签),
售价 varchar(30) './price', -- 其它栏位依此类推
负责人编号 int './employeeid'
)
-- 处理完毕, 移除文件及暂存资料表
EXEC sp_xml_removedocument @hdoc
DROP TABLE #tempxml