Ron*_*lev 52 xml sql sql-server
我有一个带有XML列的表.此列存储了我为配置应用程序而保留的一些值.我创建它以拥有更灵活的架构.我找不到直接从SQL Management Studio中的表视图更新此列的方法.其他(例如INT或Varchar)列是可编辑的.我知道我可以编写UPDATE语句或创建一些代码来更新它.但我正在寻找更灵活的东西,让高级用户直接编辑XML.
有任何想法吗?
再说一遍:请不要回答我可以写一个申请.我知道,这正是我想要避免的.
Jac*_*cob 34
这是一个老问题,但今天我需要这样做.我能想到的最好的方法是编写一个生成可以在查询编辑器中编辑的SQL代码的查询 - 它有点蹩脚,但它可以节省你复制/粘贴的东西.
注意:您可能需要进入工具>选项>查询结果>结果到文本,并将显示的最大字符数设置为足够大的数字以适合您的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]
Run Code Online (Sandbox Code Playgroud)
它产生了许多看起来像这样的查询(带有一些示例表/字段名称):
update thetable set thedata = '<root><name>Bob</name></root>' where thekey = 1
Run Code Online (Sandbox Code Playgroud)
然后,将这些查询从结果窗口复制回查询窗口,编辑xml字符串,然后运行查询.
(编辑:将10更改为最大以避免错误)
小智 17
sql server management studio缺少此功能.
我可以看到Homer Simpson是微软项目经理用手掌敲打他的头:"Duh!"
当然,我们想要编辑xml列.
我有一个廉价且令人讨厌的解决方法,但还可以。所以,对记录进行查询,即
SELECT XMLData FROM [YourTable]
WHERE ID = @SomeID
Run Code Online (Sandbox Code Playgroud)
单击 xml 数据字段,该字段应为“超链接”。这将在新窗口中打开 XML。编辑它,然后将 XML 复制并粘贴回新的查询窗口中:
UPDATE [YourTable] SET XMLData = '<row><somefield1>Somedata</somefield1>
</row>'
WHERE ID = @SomeID
Run Code Online (Sandbox Code Playgroud)
但是,是的,我们迫切需要能够进行编辑。如果您正在听 Mr. Soft,请查看 Oracle,您可以在其 Mgt Studio 等效项中编辑 XML。让我们把这归咎于一个疏忽,我仍然是 SQL Server 的忠实粉丝。