Sql 检查数据库中是否存在存储的进程?
我试图在多个数据库中的存储过程中授予execute priv。问题是此存储过程可能不在某些数据库中。那么,我如何编写一个脚本来检查数据库中是否存在存储的proc,以及是否为用户提供了执行权限呢?有多种方法可以做到这一点: (一) (二) 试试这个:Sql 检查数据库中是否存在存储的进程?,sql,sql-server,database,stored-procedures,Sql,Sql Server,Database,Stored Procedures,我试图在多个数据库中的存储过程中授予execute priv。问题是此存储过程可能不在某些数据库中。那么,我如何编写一个脚本来检查数据库中是否存在存储的proc,以及是否为用户提供了执行权限呢?有多种方法可以做到这一点: (一) (二) 试试这个: if exists (select 1 from sysobjects where id = object_id('YourProc') and type = 'P') IF EXISTS (SELECT *
if exists (select 1
from sysobjects
where id = object_id('YourProc')
and type = 'P')
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
试试这个:
if exists (select 1
from sysobjects
where id = object_id('YourProc')
and type = 'P')
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