2010-02-01 4 views
5

J'essaye d'accorder des privs d'exécution dans le proc stocké dans plus d'une base de données. Le problème est que ce proc stocké peut ne pas être dans certaines des bases de données. Alors, comment puis-je écrire un script qui vérifie si proc stocké existe dans la base de données et si fournit alors des privs d'exécution pour l'utilisateur?Vérifiez si le processus stocké existe dans la base de données?

Répondre

4

Essayez ceci:

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[your_procedure_name]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
BEGIN 
    -- Set privileges here 
END 
5

plusieurs façons de le faire:

1)

IF EXISTS (SELECT name 
     FROM sysobjects 
     WHERE name = N'proc1' 
     AND type = 'P') 

2)

IF EXISTS (SELECT * 
      FROM information_schema.routines 
      WHERE routine_name = 'Proc1') 
0

Essayez ceci:

if exists (select 1 
     from sysobjects 
     where id = object_id('YourProc') 
     and type = 'P') 
0

Vérifiez si elles existent pour une procédure stockée

IF EXISTS (SELECT * FROM sys.objects 
      WHERE object_id = OBJECT_ID 
       (N'[Schema].[Procedure_Name]') AND type IN (N'P', N'PC')) 
    BEGIN 
      DROP PROCEDURE [Schema].[Procedure_Name] 
      Print('Proceudre dropped => [Schema].[Procedure_Name]') 
    END 

Vérifiez si elles existent pour déclenchement, fonction également en cliquant sur lien ci-dessous http://www.gurujipoint.com/2017/05/check-if-exist-for-trigger-function-and.html

Questions connexes