Sha*_*pta 7 sql sql-server-2008
DECLARE @t2 AS TABLE(id INT)
INSERT INTO dbo.EntityMaster
(EntityType)
OUTPUT INSERTED.EntityId INTO @t2
SELECT 'G' FROM #tmp
Run Code Online (Sandbox Code Playgroud)
#tmp是一个临时表,包含从xml加载的数据.我需要为EntityId包含在其中的每条记录生成#tmp.可以通过先将记录插入EntityMaster表中然后将此实体代码插入#tmp每个记录来完成.
@t2我没有插入记录,而是需要更新#tmp每条记录.
有可能吗?
小智 1
尝试这样的事情,您仍然需要使用临时表,但它读起来还不错,并且可以完成工作。
创建表#tmp
(
tmpID INT IDENTITY(1,1) 主键聚集,
xmlData VARCHAR(255),
实体 ID INT
)
声明 @t2 表
(
tmpID INT,
实体 ID INT
)
合并 dbo.EntityMaster 作为 EM
使用
(
选择 tmpID,
xml数据,
实体ID
来自#tmp
) AS X
ON EM.EntityId = X.EntityId
当不匹配时
INSERT(实体类型)
值(X.xmlData)
输出 X.tmpID,插入.EntityId
INTO @t2 (tmpID, EntityId);
更新时间
SET EntityId = T2.EntityId
来自 @t2 T2
内连接 #tmp T
ON T2.tmpID = T.tmpID
| 归档时间: |
|
| 查看次数: |
871 次 |
| 最近记录: |