【问题标题】:Scope Resolution Operator in SQL SERVERSQL SERVER 中的范围解析运算符
【发布时间】:2017-04-07 02:18:39
【问题描述】:

SQL SERVER中使用Scope Resolution Operator (::)有什么意义。众所周知,当我们使用GRANT 命令时,作用域解析运算符将成为语法的一部分。

GRANT ALTER ON Schema :: DBO TO user_name

它有什么特定的含义吗,或者就是这样使用的。

【问题讨论】:

  • 获得技术性:这不是“范围解析运算符”。 (exists,但有些不同。)有些语言有这样一个通用的标识符运算符,但在 T-SQL 中,class:: 结构的使用很简单——指定你正在操作的对象的类在。它仅出现在GRANTDENYALTER AUTHORIZATION 语句中,并不普遍适用。至于为什么需要,那是另外一回事。不同类型的对象何时可以共享名称以及何时不能共享名称的规则有点复杂。

标签: sql sql-server sql-server-2012 grant scope-resolution


【解决方案1】:

参考,

http://sqlblog.com/blogs/kalen_delaney/archive/2006/09/06/186.aspx

检查下面的查询没有任何意义,

SELECT * FROM ::fn_trace_getinfo(default)

如果你在没有 :: 的情况下执行,它仍然会被执行。

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 2010-09-09
    • 2015-12-18
    • 2014-10-05
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多