首先关闭什么关系数据库管理系统?
但是,我怀疑这type
是表中的列或存储过程中的变量。
N
, 表示您正在将下一个字符串转换为nchar
,nvarchar
或nvarchar2
(取决于 RDBMS)。这些是允许多字节字符的数据类型。
'PC'
并且'P'
是字符串。
将所有这些放在一起,您将转换'PC'
为'P'
多字节字符集,并检查列或变量type
是否与这些字符串之一相同。
in
表示type
可以与或相同 。'PC'
'P'
根据您的评论,您正在使用 SQL-Server
您正在检查对象是否[dbo].[SP_AUTHENTIFICATION]
存在并且是存储过程 (P) 还是程序集存储过程 (PC)。
type
中的列sys.objects
不是,nchar
因此转换毫无意义。
一点一点地走
IF EXISTS
- 如果括号中的以下查询的结果返回一行:
SELECT * FROM sys.objects
- 从中选择一行sys.objects
WHERE object_id =
- 其中object_id
等于以下
OBJECT_ID(N'[dbo].[SP_AUTHENTIFICATION]')
- 返回object_id
的[dbo].[SP_AUTHENTIFICATION]
AND type in (N'P', N'PC')
- 并且该对象是存储过程。
U
,不在您的查询中,正在检查是否type
是表。该文档为您提供了完整列表。