首页 > 数据库技术 > 详细

Sql Sever 表遍历,Exec动态执行sql语句返回变量

时间:2020-04-06 17:40:15      阅读:62      评论:0      收藏:0      [点我收藏+]
    DECLARE @id AS INT,
            @table_name AS NVARCHAR(200),
            @number_column_name AS NVARCHAR(200),
            @sql NVARCHAR(MAX),
            @cnt INT;

    WHILE EXISTS (SELECT id FROM @temp)
    BEGIN
        -- 也可以使用top 1
        SET ROWCOUNT 1;
        SELECT @id = id,
               @table_name = table_name,
               @number_column_name = number_column_name
        FROM @temp;
        SELECT @table_name = table_name,
               @number_column_name = number_column_name
        FROM dbo.sed_filing_doc
        WHERE id = @id;

        SET @sql
            = N‘ select @cnt=count(*)  from ‘ + @table_name + N‘  where filing_id=‘ + CAST(@filing_id AS NVARCHAR(200));
        EXEC sp_executesql @sql, N‘@cnt int out‘, @cnt OUT;

        UPDATE dbo.sed_filing_doc
        SET count = @cnt
        WHERE id = @id;
        SET ROWCOUNT 0;

        DELETE FROM @temp
        WHERE id = @id;
    END;


Sql Sever 表遍历,Exec动态执行sql语句返回变量

原文:https://www.cnblogs.com/dreamsails/p/12642857.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!