【问题标题】:Check if SQL Server 2005 XML field is empty检查 SQL Server 2005 XML 字段是否为空
【发布时间】:2011-03-08 06:11:28
【问题描述】:

我刚刚这样做了:

Delete FROM MyTable WHERE ScopeValue = "" 
Delete FROM G_Scope WHERE ScopeValue is ''
Delete FROM G_Scope WHERE ScopeValue = empty
Delete FROM G_Scope WHERE ScopeValue is empty

我想删除所有带有 xml 字段(不可为空)的行,其中 ScopeValue 列有空条目表示零字符。

有人知道吗?

【问题讨论】:

    标签: sql-server xml-column is-empty


    【解决方案1】:

    试试这个:

     DELETE FROM dbo.G_Scope WHERE ScopeValue IS NULL
    

    如果不包含任何值,则 SQL Server 列将为 NULL

    另一种可能性是 XML 不是 NULL,而是包含一个空字符串作为其值。为此,请使用以下命令:

    -- The DATALENGTH of an empty XML column is 5
    SELECT * FROM dbo.G_Scope WHERE DATALENGTH(ScopeValue) = 5
    

    这会显示您感兴趣的行吗?

    【讨论】:

    • 那很奇怪......,要么我在 Is NULL 之前做过这个......而且似乎我有一个 sql studio 管理显示刷新问题。我可以一次又一次地在表格上进行选择,它显示带有空字段的 ScopeValues...
    • @marc_s 我相信空 XML var 的数据长度为 5:declare @x xml; set @x=''; select datalength(@x); select cast(@x as varbinary(max))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2012-02-21
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多