Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TSQL:如何将变量和文本一次插入到单个字段中_Sql_Sql Server_Tsql - Fatal编程技术网

TSQL:如何将变量和文本一次插入到单个字段中

TSQL:如何将变量和文本一次插入到单个字段中,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有以下代码来更新MIITEM中的记录,这很好,但是如何动态使用另一个名为[WI]的表中的数据呢 use DB1; Go update MIITEM set [fldXml]= '<fields> <field5>USE DISC:300230 FORMED OD:13.48 BH SPEC:8/8/6.003, BH Size: 0.656, C/S Spec: 90/0.843/CONICAL 2</field5> <field6>1 - CL

我有以下代码来更新MIITEM中的记录,这很好,但是如何动态使用另一个名为[WI]的表中的数据呢

use DB1;
Go
update MIITEM
set [fldXml]= '<fields>
<field5>USE DISC:300230 FORMED OD:13.48 BH SPEC:8/8/6.003, BH Size: 0.656, C/S Spec: 90/0.843/CONICAL 2</field5>
<field6>1 - CL THRU PLATE-V/S HOLE SIZE:5/8&quot;Z1 V:0.125 L:0.125  COLOR:100270 AGC REVERSE DISC</field6>
<field7>N/A</field7>
</fields>'
where [itemId]='500201'
使用DB1;
去
更新项目
设置[fldXml]='
使用阀瓣:300230成型外径:13.48 BH规格:8/8/6.003,BH尺寸:0.656,C/S规格:90/0.843/2
1-CL贯穿板V/S孔尺寸:5/8“Z1 V:0.125 L:0.125颜色:100270 AGC反转盘
不适用
'
其中[itemId]=“500201”
下面是源表中的数据

下面是应用程序中的数据

这是MIITEM或Destination表中的记录

我想用[wi]表中[wi].[DISC_NOTE]字段中的值动态替换文本
USE DISC:300230 FORMED OD:13.48 BH SPEC:8/8/6.003,BH Size:0.656,C/S SPEC:90/0.843/con锥形2

use DB1;
Go
update MIITEM
set [fldXml]= '<fields>
<field5>USE DISC:300230 FORMED OD:13.48 BH SPEC:8/8/6.003, BH Size: 0.656, C/S Spec: 90/0.843/CONICAL 2</field5>
<field6>1 - CL THRU PLATE-V/S HOLE SIZE:5/8&quot;Z1 V:0.125 L:0.125  COLOR:100270 AGC REVERSE DISC</field6>
<field7>N/A</field7>
</fields>'
where [itemId]='500201'
我想用[wi].[WHEEL_NOTE]字段值动态替换
1-CL贯穿板-V/S孔尺寸:5/8“Z1 V:0.125 L:0.125颜色:100270 AGC反转盘

use DB1;
Go
update MIITEM
set [fldXml]= '<fields>
<field5>USE DISC:300230 FORMED OD:13.48 BH SPEC:8/8/6.003, BH Size: 0.656, C/S Spec: 90/0.843/CONICAL 2</field5>
<field6>1 - CL THRU PLATE-V/S HOLE SIZE:5/8&quot;Z1 V:0.125 L:0.125  COLOR:100270 AGC REVERSE DISC</field6>
<field7>N/A</field7>
</fields>'
where [itemId]='500201'
我想从[wi]表中替换[wi].[ASSEMBLY\u NOTE]字段。动态地在字段之间穿行

use DB1;
Go
update MIITEM
set [fldXml]= '<fields>
<field5>USE DISC:300230 FORMED OD:13.48 BH SPEC:8/8/6.003, BH Size: 0.656, C/S Spec: 90/0.843/CONICAL 2</field5>
<field6>1 - CL THRU PLATE-V/S HOLE SIZE:5/8&quot;Z1 V:0.125 L:0.125  COLOR:100270 AGC REVERSE DISC</field6>
<field7>N/A</field7>
</fields>'
where [itemId]='500201'

为此,可以使用TSQL XML DML(假设
fldXml
XML
数据类型)。查询如下所示

update MIITEM
set [fldXml].modify('replace value of (fields/field5)[1]
                     with sql:column("DISC_NOTE")')
from MIITEM m 
     inner join wi on m.idemid=wi.stock_id
--where m.idemid='500201' --if you need it
请注意,您必须运行
update
trice(分别针对每个字段5、字段6和字段7),因为XML DML不允许多节点更新

更新 如果
fldXml
是一个字符串,则需要比较构建整个字符串的开销

fldXml='<fields><field5>'+wi.disc_note+...
然后根据初始答案为每个节点更新几次
@MIITEM
,最后

update MIITEM
set [fldXml]=x.fldXml 
from MIITEM t
     inner join @MIITEM x on t.itemid = x.itemid 

为此,可以使用TSQL XML DML(假设
fldXml
XML
数据类型)。查询如下所示

update MIITEM
set [fldXml].modify('replace value of (fields/field5)[1]
                     with sql:column("DISC_NOTE")')
from MIITEM m 
     inner join wi on m.idemid=wi.stock_id
--where m.idemid='500201' --if you need it
请注意,您必须运行
update
trice(分别针对每个字段5、字段6和字段7),因为XML DML不允许多节点更新

更新 如果
fldXml
是一个字符串,则需要比较构建整个字符串的开销

fldXml='<fields><field5>'+wi.disc_note+...
然后根据初始答案为每个节点更新几次
@MIITEM
,最后

update MIITEM
set [fldXml]=x.fldXml 
from MIITEM t
     inner join @MIITEM x on t.itemid = x.itemid 

@SeanLange的可能重复我不认为它的重复,我的是不同的问题,我希望通过将
whl
表中的记录添加到
中来更新
fldXml
字段<代码>``是恒定的……这正是另一个问题所做的。您可以在sql server的更新语句中使用联接。@SeanLange的可能重复项我不认为它的重复项,我的重复项是不同的问题,我希望通过将
whl
表中的记录添加到
中来更新
fldXml
字段<代码>``是恒定的……这正是另一个问题所做的。您可以在sql server的更新语句中使用联接。谢谢您fldxml是一个
text
datatype如果
fldxml
是varchar,那么您可以像
fldxml='''++wi.disc\u note+…
谢谢您fldxml是一个
text
datatype如果
fldxml
是varchar,那么您可以像
fldXml=''+wi.disc\u note+…