循环所有表和exec存储过程

fd3cxomn  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(443)

我有几十个表(mssql)以及要在所有触发器上实现什么以进行审计。会有很多高管电话。如何在所有表中循环并执行存储过程?

EXEC [dbo].[_create_audit_trigger]  @TableName = N'City'
oknwwptz

oknwwptz1#

你在找什么

DECLARE @SQL NVARCHAR(MAX);

SELECT @SQL = STRING_AGG( 
                         CAST(CONCAT('EXEC [dbo].[_create_audit_trigger]  @TableName = N''', 
                                QUOTENAME(S.Name), 
                                '.', 
                                QUOTENAME(T.Name), 
                                N''''
                               ) AS NVARCHAR(MAX)), 
                        ';')
FROM Sys.Tables T
JOIN Sys.Schemas S ON T.Schema_Id = S.Schema_Id;

SELECT @SQL; -- EXEC
-- EXEC sp_executesql @SQL;

db<>小提琴

7cwmlq89

7cwmlq892#

SELECT 'EXEC [dbo].[_create_audit_trigger]  @TableName = N''' + QUOTENAME(schemas.name) + '.' + QUOTENAME(tables.name) + N''''
FROM sys.tables
INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id

相关问题