繁体   English   中英

将动态SELECT查询转换为UPDATE存储过程SQL

[英]Turn dynamic SELECT query into UPDATE stored procedure SQL

我对此并不陌生,并且很难将下面的SQL查询转换为存储过程的UPDATE语句。

SELECT 'select'+
stuff((
SELECT ',' + 'dbo.' + Function_Name + '(' + Parameters_List + ')'  FROM 
[SPECIFIC_DATABASE]..Specific_table c WHERE c.Table_Name = t.Table_Name FOR 
XML PATH('')),1,1,'') 
+' from [' + Database_Name +'].[dbo].['+Table_Name+'] '
+ 'Where Audit_ID>' + CAST(@Audit_ID as nvarchar(100))
As 'Specific Queries' 
FROM (SELECT Distinct Database_Name, Table_Name FROM [SPECIFIC_DATABASE]..Specific_table) t

UPDATE查询应类似于

UPDATE Table_name
SET Column_name = Function_Name(Parameters_List)
WHERE Audit_id >= @Audit_ID
FROM [SPECIFIC_DATABASE]..Specific_table

任何建议和指导方针将不胜感激!

我认为这应该可以为您提供所需的内容,但是我看不到对Column_Name的任何引用,因此我假设您将对此进行硬编码。

select 'UPDATE tbl' + stuff((
            select ' set Column_Name = ' + 'dbo.' + Function_Name + '(' + Parameters_List + ')'
            from [SPECIFIC_DATABASE]..Specific_table c
            where c.Table_Name = t.Table_Name
            for xml PATH('')
            ), 1, 1, '') 
       + ' from [' + Database_Name + '].[dbo].[' + Table_Name + '] tbl' 
       + 'Where Audit_ID>' 
       + CAST(@Audit_ID as nvarchar(100)) as 'Specific Queries'
from (
    select distinct Database_Name, Table_Name
    from [SPECIFIC_DATABASE]..Specific_table
    ) t

如果答案不正确,则发布第一个查询的当前输出是什么,以及有关称为"Specific_table"的表的内容可能有更多详细信息,可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM