为什么前缀sql函数名?

前端之家收集整理的这篇文章主要介绍了为什么前缀sql函数名?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是一个场景,例如在sql Server中的函数名称上使用前缀的好理由,例如fn_GetName?似乎这是不必要的,因为通常使用它的上下文会清楚地表明它是一个功能.我还没有使用任何其他语言,这些语言曾经需要在函数上使用前缀,我不能想到一个好的场景,可以显示为什么sql是不同的.

我唯一的想法是,也许在较旧的IDE中,当数据库对象都列在一起时,将功能分组在一起是有用的,但现代IDE已经明确了什么是功能.

解决方法

你对旧的IDE是正确的

作为DBA,尝试使用sql Server企业管理器(sql Server 2000和7.0)修复权限,这是完全错误的尝试查看权限.如果你有ufn或usp或vw,那么由于GUI如何呈现数据,变得更容易将事物分组在一起.

说,如果你有SELECT * FROM Thing,什么是Thing?视图还是桌子?它可能适用于您作为开发人员,但它将在部署时崩溃,因为您不会对表本身授予权限:只有视图或procs.当然,vwThing会让你的血压下降吗?

如果您使用模式,它将变得无关紧要.你可以“命名空间”你的对象.例如,“Data”中的表和其他模式中的每个客户端的其他对象,例如WebGUI

编辑:

功能.您有表值和标量函数.如果你坚持使用代码“VerbNoun”的概念,你怎么知道哪个是没有其他的线索. (当然,这不可能发生,因为对象名称是唯一的)

SELECT dbo.GetName() FROM MyTable
SELECT * FROM dbo.GetName()

如果您使用复数来表示表值函数,这可以说更糟

SELECT dbo.GetName() FROM MyTable
SELECT * FROM dbo.GetNames()

虽然这不太模糊,虽然对一些民众冒犯;-)

SELECT dbo.sfnGetName() FROM MyTable
SELECT * FROM dbo.tfnGetName()

有了模式没有名字含糊不清

SELECT ScalarFN.GetName() FROM MyTable
SELECT * FROM TableFN.GetName()

您的“任何其他语言”评论不适用. sql不是像c#,Java,f#,Ada(OK,PL / sql可能),VBA,没有对象或命名空间层次结构.没有Object.DoStuff方法的东西.

前缀可能只是让你保持一致的事情

原文链接:/mssql/75438.html

猜你在找的MsSQL相关文章