sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan finder jeg alle lagrede procedurer, der indsætter, opdaterer eller sletter poster?

Ring til sp_refreshsqlmodule på alle ikke-skemabundne lagrede procedurer:

DECLARE @template AS varchar(max)
SET @template = 'PRINT ''{OBJECT_NAME}''
EXEC sp_refreshsqlmodule ''{OBJECT_NAME}''

'

DECLARE @sql AS varchar(max)

SELECT  @sql = ISNULL(@sql, '') + REPLACE(@template, '{OBJECT_NAME}',
                                          QUOTENAME(ROUTINE_SCHEMA) + '.'
                                          + QUOTENAME(ROUTINE_NAME))
FROM    INFORMATION_SCHEMA.ROUTINES
WHERE   OBJECTPROPERTY(OBJECT_ID(QUOTENAME(ROUTINE_SCHEMA) + '.'
                                 + QUOTENAME(ROUTINE_NAME)),
                       N'IsSchemaBound') IS NULL
        OR OBJECTPROPERTY(OBJECT_ID(QUOTENAME(ROUTINE_SCHEMA) + '.'
                                    + QUOTENAME(ROUTINE_NAME)),
                          N'IsSchemaBound') = 0

        EXEC (
              @sql
            )


  1. Vil have denne enkle forespørgsel til at sløjfe

  2. underforespørgsel (forkerte argumenter til MOD) ved hjælp af Mysql

  3. mysql hvordan man opdaterer en kolonne i hver række med et givet sæt værdier

  4. MySQL, CONCAT, resultatet er null efter et stykke tid