表结构


CREATE TABLE [dbo].[En](
[ID] [int] IDENTITY(1,1) NOT NULL,
[En] [nvarchar](200) NOT NULL,
[Audio] [nvarchar](max) NOT NULL,
[Pron] [nvarchar](max) NULL,
[Def] [nvarchar](max) NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
存储过程


ALTER procedure [dbo].[Dict2SQL]
as
begin
update Signal set id = id + 1
/* 全部清空数据 */
truncate table en
/* XML入库.Begin */
DECLARE @en TABLE(data XML)
INSERT INTO @en
SELECT CAST(A AS XML) FROM OPENROWSET(BULK N'c:\dict.xml',SINGLE_BLOB) A(A);
DECLARE @docHandle int
DECLARE @xmlDocument nvarchar(max) -- or xml type
SELECT @xmlDocument = CAST(data as NVARCHAR(MAX)) FROM @en
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument;
/* 入原始库 */
INSERT INTO en
SELECT * FROM OPENXML(@docHandle, N'/Dictionary/Item',2)
WITH en
EXEC sp_xml_removedocument @docHandle
end
XML格式


<Dictionary>
<Item>
<En></En>
<Audio></Audio>
<Pron>
</Pron>
<Def></Def>
</Item>
</Dictionary>