一尘不染

如何在SQL Management Studio中轻松编辑SQL XML列

sql

我有一个带有XML列的表。该列存储一些我保留用于配置应用程序的值。我创建它的目的是拥有更灵活的架构。我找不到直接从SQL Management
Studio中的表视图更新此列的方法。其他(例如INT或Varchar)列是可编辑的。我知道我可以编写UPDATE语句或创建一些代码来对其进行更新。但是我正在寻找更灵活的方法,使高级用户可以直接编辑XML。

有任何想法吗?

再次重申:请不要回答我可以编写一个应用程序。我知道,而这正是我要避免的事情。


阅读 134

收藏
2021-03-17

共1个答案

一尘不染

这是一个老问题,但是我今天需要这样做。我能想到的最好的办法是编写一个查询,该查询生成可以在查询编辑器中编辑的SQL代码-
有点la脚,但可以节省复制/粘贴的内容。

注意:您可能需要进入“工具”>“选项”>“查询结果”>“结果为文本”,并将显示的最大字符数设置为足够大的数字以适合您的XML字段。

例如

select 'update [table name] set [xml field name] = ''' + 
convert(varchar(max), [xml field name]) +
''' where [primary key name] = ' + 
convert(varchar(max), [primary key name]) from [table name]

这会产生很多如下所示的查询(带有一些示例表/字段名称):

update thetable set thedata = '<root><name>Bob</name></root>' where thekey = 1

然后,将这些查询从结果窗口复制回查询窗口,编辑xml字符串,然后运行查询。

(编辑:最大更改为10以避免错误)

2021-03-17