gpt4 book ai didi

sql-server - SQL Server 中检查存储过程是否存在的不同方法

转载 作者:行者123 更新时间:2023-12-02 00:46:26 25 4
gpt4 key购买 nike

我找到了两种方法来检查我们当前代码中是否存在存储过程:

if object_id('dbo.procedure_to_drop') is not null

对比

if exists (select * from sysobjects where id = object_id('dbo.procedure_to_drop') and sysstat & 0xf = 4)

它们之间有什么区别,哪种方式更受欢迎?

最佳答案

第一个版本检查是否存在具有给定名称的任何对象。在这种情况下,如果您打错了字并输入了表名,它仍然会通过。关于第二个版本已过时,因为无法保证 future 版本是否支持使用 sysstat。 (查看msdn站点:https://learn.microsoft.com/en-us/sql/relational-databases/system-compatibility-views/sys-sysobjects-transact-sql)

我不会使用它们中的任何一个。我更愿意直接按名称检查对象:

if exists (select 1 from sys.procedures where name = 'procedure_to_drop')

系统程序:https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-procedures-transact-sql

如果你有 sql server 2016,你可以使用新的语言元素来做同样的事情,这取决于你想要什么:

关于sql-server - SQL Server 中检查存储过程是否存在的不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43486268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com