我正在运行命令
ALTER TABLE [DB].dbo.TABLEA ADD [Field1] [xml] DEFAULT
CAST(N'<SettingValues xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://someurl.com/schemas.xsd" />' AS xml)
我期待一个带有 xml 字符串的新列出现,但它们都显示为 NULL。我做错什么了吗?
我的语法基于这个Microsoft 文档资源。
您可以在我创建的SQLFiddle上对此进行测试。
创建新列时,您可以使用 SQL Server WITH VALUES语法来设置默认值。
运行上述产生以下输出。
然后,我们使用以下语法添加两个新列 Field1 和 Field2
使用 XMLstring 填充现有行的新列 Field2 获得以下所需结果,而新列 Field1 的结果为 Null。
默认值仅适用于新添加的行。您必须将
UPDATE
现有行设置为所需的默认值。如果该列设置为,
NOT NULL
则使用默认值,即使WITH VALUES
未使用也是如此。从文档:
这个小提琴展示了差异。