【发布时间】:2010-05-14 04:58:45
【问题描述】:
我在 sql server 中创建了一个示例查询来解析 xml 中的数据并立即显示它。 虽然我将在我的表中插入这些数据,但在此之前我面临一个简单的问题。
我想在日期时间字段ADDED_DATE="NULL" 中插入NULL,如下面的xml 所示。但是当我执行这个查询时。它给了我错误
从字符串转换日期时间时转换失败。
我做错了什么。请指出我的错误。
declare @xml varchar(1000)
set @xml= '
<ROOT>
<TX_MAP FK_GUEST_ID="1" FK_CATEGORY_ID="2" ATTRIBUTE="Test" DESCRIPTION="TestDesc" IS_ACTIVE="1" ADDED_BY="NULL" ADDED_DATE="NULL" MODIFIED_BY="NULL" MODIFIED_DATE="NULL"></TX_MAP>
<TX_MAP FK_GUEST_ID="2" FK_CATEGORY_ID="1" ATTRIBUTE="Test2" DESCRIPTION="TestDesc2" IS_ACTIVE="1" ADDED_BY="NULL" ADDED_DATE="NULL" MODIFIED_BY="NULL" MODIFIED_DATE="NULL"></TX_MAP>
</ROOT> '
declare @handle int
exec sp_xml_preparedocument @handle output, @xml
select * from OPENXML(@handle,'/ROOT/TX_MAP',1)
with
(
FK_GUEST_ID INT
,FK_CATEGORY_ID VARCHAR(10)
,ATTRIBUTE VARCHAR(100)
,[DESCRIPTION] VARCHAR(100)
,IS_ACTIVE VARCHAR(10)
,ADDED_BY VARCHAR(100)
,ADDED_DATE DATETIME NULL
,MODIFIED_BY VARCHAR(100)
,MODIFIED_DATE DATETIME NULL
)
我使用的是 Sql Server 2005。
【问题讨论】:
-
既然您使用的是 SQL Server 2005,为什么不使用“XML”数据类型呢?
-
@John:我已经创建了表,我将在其中插入这些数据。我试图避免在前端运行事务。这就是为什么。在这里,我只是提供了 select 的示例查询,否则我将为 insert 执行此操作
-
这仍然没有说明您为什么不使用 XML 数据类型。更改列的数据类型有多难?
标签: sql-server xml tsql sql