sql >> Databáze >  >> RDS >> Sqlserver

Jak najdu všechny uložené procedury, které vkládají, aktualizují nebo odstraňují záznamy?

Zavolejte sp_refreshsqlmodule na všech uložených procedurách nevázaných na schéma:

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. ModuleNotFoundError:Žádný modul s názvem 'mysql'

  2. pt-table-sync, Podivné problémy týkající se názvu hostitele

  3. TSQL:Jak převést místní čas na UTC? (SQL Server 2008)

  4. UTF-8 vs Latin1 mysql, indexy se nepoužívají na utf-8