Nis*_*han 1 sql-server stored-procedures sql-server-2008
请帮助我想检查我的数据库中是否存在存储过程。如果它确实存在,那么应该删除该存储过程,如果它不存在则应该创建该存储过程。
请告诉我查询
到目前为止,这是我的尝试:
try {
objData.Query = "if exists (select * from dbo.sysobjects
where id = object_id(N'[dbo].["+ ProcName+"]')
and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[ "+ ProcName+"]" ; //
objData.Query = " Drop Proc " + ProcName;
objData.Execute();
} catch
{
}
Run Code Online (Sandbox Code Playgroud)
IF OBJECT_ID(N'[dbo].[spa_Search]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[spa_Search]
GO
Run Code Online (Sandbox Code Playgroud)
您可以检查 OBJECT_ID,它是架构范围对象的对象标识号。
Run Code Online (Sandbox Code Playgroud)OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] object_name' [ ,'object_type' ] )参数
' object_name '
是要使用的对象。object_name 是 varchar 或 nvarchar。如果 object_name 是 varchar,则它被隐式转换为 nvarchar。指定数据库和模式名称是可选的。
' object_type '
是架构范围的对象类型。object_type 是 varchar 或 nvarchar。如果 object_type 是 varchar,则隐式转换为 nvarchar。有关对象类型的列表,请参阅 sys.objects (Transact-SQL) 中的类型列返回类型
int
异常
对于空间索引,OBJECT_ID 返回 NULL。
出错时返回 NULL。
用户只能查看用户拥有的或已授予用户权限的安全对象的元数据。这意味着如果用户对对象没有任何权限,则元数据发射的内置函数(如 OBJECT_ID)可能会返回 NULL。有关更多信息,请参阅元数据可见性配置。
快速查看OBJECT_ID
| 归档时间: |
|
| 查看次数: |
18372 次 |
| 最近记录: |