如何为此构建动态 SQL?

发布于 2024-11-13 07:53:30 字数 1331 浏览 2 评论 0原文

我必须使用动态 SQL 创建过程并生成更新语句。

我有表

Col.TMap.T_Mp

 ID   M_Type  ID_F     SF1      SF2
  1   Acc     ACC_ID   AC_ID    NULL
  1   STA     STA_ID   ST_ID    NULL
  1   CHa     Cha_ID   CH_ID    NULL

ACC

ID    AC_ID   SV1   SV2     SO1    SO2
1     12      6     NULL    =      NULL

STA

ID     STA_ID      SV1     SV2      SO1    SO2
1      1           Open    NULL     =      NULL
1      2           CLosed  NULL     =      NULL

CHa

ID    CHa_ID    SV1    SV2    SO1    SO2
1     1         PH     NULL   =      NULL
1     2         EM     NULL   =      NULL

我需要使用上表中的 ACC_ID、STA_ID 和 CHA_ID 更新 Ms.AT.AT_CRAW_Dmtemp 表:

输出应该是:

UPDATE  mt 
SET ACC_ID = ac.ACC_ID
FROM Ms.AT.AT_CRAW t
INNER JOIN Acc ac ON t.AC_ID=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt 
ON mt.[SRID] = t.[RID]



UPDATE  mt 
SET STA_ID = ac.STA_ID
FROM Ms.AT.AT_CRAW t
INNER JOIN STA ac ON t.ST_ID=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt 
ON mt.[SRID] = t.[RID]



UPDATE  mt 
SET CHa_ID = ac.CHa_ID
FROM Ms.AT.AT_CRAW t
INNER JOIN CHa ac ON t.CH_ID=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt  
ON mt.[SRID] = t.[RID]

那么有人可以建议我如何执行此操作吗?

I have to create a Procedure with dynamic SQL and generate the Update Statements.

I have tables

Col.TMap.T_Mp

 ID   M_Type  ID_F     SF1      SF2
  1   Acc     ACC_ID   AC_ID    NULL
  1   STA     STA_ID   ST_ID    NULL
  1   CHa     Cha_ID   CH_ID    NULL

ACC

ID    AC_ID   SV1   SV2     SO1    SO2
1     12      6     NULL    =      NULL

STA

ID     STA_ID      SV1     SV2      SO1    SO2
1      1           Open    NULL     =      NULL
1      2           CLosed  NULL     =      NULL

CHa

ID    CHa_ID    SV1    SV2    SO1    SO2
1     1         PH     NULL   =      NULL
1     2         EM     NULL   =      NULL

I need to update Ms.AT.AT_CRAW_Dmtemp table with ACC_ID,STA_ID and CHA_ID from the above tables:

The out put should be:

UPDATE  mt 
SET ACC_ID = ac.ACC_ID
FROM Ms.AT.AT_CRAW t
INNER JOIN Acc ac ON t.AC_ID=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt 
ON mt.[SRID] = t.[RID]



UPDATE  mt 
SET STA_ID = ac.STA_ID
FROM Ms.AT.AT_CRAW t
INNER JOIN STA ac ON t.ST_ID=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt 
ON mt.[SRID] = t.[RID]



UPDATE  mt 
SET CHa_ID = ac.CHa_ID
FROM Ms.AT.AT_CRAW t
INNER JOIN CHa ac ON t.CH_ID=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt  
ON mt.[SRID] = t.[RID]

So can anyone suggest me on how to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆梦 2024-11-20 07:53:30
select
'UPDATE  mt
SET ' + ID_F + ' = ac.' + ID_F + '
FROM Ms.AT.AT_CRAW t
INNER JOIN ' + M_Type + ' ac ON t.' + SF1 + '=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt 
ON mt.[SRID] = t.[RID]' as SQL
from Col.TMap.T_Mp
select
'UPDATE  mt
SET ' + ID_F + ' = ac.' + ID_F + '
FROM Ms.AT.AT_CRAW t
INNER JOIN ' + M_Type + ' ac ON t.' + SF1 + '=SV1
AND ac.ID = 1
INNER JOIN Ms.AT.AT_CRAW_Dmtemp mt 
ON mt.[SRID] = t.[RID]' as SQL
from Col.TMap.T_Mp
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文