Joh*_*com 1 sql sql-server where
我是SQL的初学者.我找不到这行:
type in (N'P', N'PC')
Run Code Online (Sandbox Code Playgroud)
什么在where子句中:P,PC,U?
编辑:
完整查询是:
IF EXISTS (SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].SP_AUTHENTIFICATION]')
AND type in (N'P', N'PC'))
Run Code Online (Sandbox Code Playgroud)
如果您希望您的问题对其他人有用,则评论中的详细信息属于问题正文,因为这些标识符仅在sysobjects表的上下文中有意义.
这是意思.
因此,您的子句检查是否sp_authetication存在任何调用过程.
首先关闭什么是关系数据库管理系统?
但是,我怀疑这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是一个表.该文档为您提供了完整列表.
| 归档时间: |
|
| 查看次数: |
6365 次 |
| 最近记录: |