检查SQL Server 2005 XML字段是否为空

msf*_*boy 8 sql-server xml-column is-empty

我这样做了:

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
Run Code Online (Sandbox Code Playgroud)

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

有谁知道?

mar*_*c_s 12

试试这个:

 DELETE FROM dbo.G_Scope WHERE ScopeValue IS NULL
Run Code Online (Sandbox Code Playgroud)

NULL如果不包含任何值,SQL Server列将是.

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

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

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

  • @marc_s我相信空XML var的数据长度是5:`declare @x xml; 设置@ x =''; 选择datalength(@x); select cast(@x as varbinary(max))` (14认同)