关于quotename的用法[通俗易懂]

关于quotename的用法[通俗易懂]首先,sqlserver里的标识符有一定的规则,比如你 createtableabc123(…) 那么中间含有空格,它不是符合规则的。 你会写做create

大家好,又见面了,我是你们的朋友全栈君。

首先,sqlserver里的标识符有一定的规则,比如  你 
create table abc 123(…) 
那么中间含有空格,它不是符合规则的。 

你会写做 create table [abc 123](….) 
即以[]来定界标识符。

quotename将 字串成为有效的标识符。 

它有什么用呢? 我举个例子:

你有个表名字叫做 aa[]bb 

当某些应用动态语句查询时 你如何写呢 
exec(‘select * from aa[]bb’) ?X

set @sql=’select * from ‘ + quotename(‘aa[]bb’) 
exec(@sql) 

当然你也可以直接写出转义的写法 

select * from [aa[]]bb] 

也就是说,quotename 使函数中的输入成为一个有效的标识符。 
比如上例中 aa[]bb 不是一个有效的标识符。

还有一点就是quotename函数有几种写法: 
  quotename(‘aa’) 生成的有效的标识符为 [aa] 
  quotename(‘aa’,”) 生成的有效的标识符为 [aa] 
  quotename(‘aa’,””) 生成的有效的标识符为 ‘aa’

 

解释2:

简单来说吧
比如你有一个表,名字叫 index
你有一个动态查询,参数是表名
declare @tbname varchar(256)
set @tbname=’index’
—查这个表里的数据:
print(‘select * from ‘+@tbname)
exec(‘select * from ‘+@tbname)

–这样print出来的数据是
select * from index

因为index是字键字,肯定出错,加上括号就可以了:
select * from [index]

这便有了QUOTENAME,即:
print(‘select * from ‘+QUOTENAME(@tbname))
–结果:select * from [index]
exec(‘select * from ‘+QUOTENAME(@tbname))

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155536.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【13】进大厂必须掌握的面试题-配置管理面试

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。配置管理流程的目标是什么? 配置管理(CM)的目的是通过使开发或部署过程可控和可重复,从而创建更高质量的产品或…

    2021年6月23日
    117
  • 自定义 DataLoader[通俗易懂]

    自定义 DataLoader[通俗易懂]自定义DataLoader如数据输入一文所介绍,OneFlow支持两种数据加载方式:直接使用NumPy数据或者使用DataLoader及其相关算子。在大型工业场景下,数据加载容易成为训练的瓶颈。在其它的框架中,数据加载流水线往往作为单独的模块存在,需要针对不同场景进行调整,通用性不高。在OneFlow中,DataLoader及相关预处理算子,与其它普通算子地位等同,可以享受与其它算子一样的流水加速效果,轻松解决大规模数据加载的痛点。在OneFlow中使用DataLoader

    2022年5月23日
    100
  • php fread 逐行读取,php fread函数使用方法总结

    php fread 逐行读取,php fread函数使用方法总结phpfread函数使用方法总结phpfread函数用于读取文件(可安全用于二进制文件),其语法是fread(file,length),参数file必需,指规定要读取打开文件,length必需,指规定要读取的最大字节数。phpfread函数怎么用?定义和用法fread()函数读取文件(可安全用于二进制文件)。语法fread(file,length)参数file必需。规定要读取打开文件。…

    2025年11月5日
    2
  • Leetcode 166 Fraction to Recurring Decimal

    Leetcode 166 Fraction to Recurring Decimal

    2022年1月31日
    37
  • 两个向量的点乘和叉乘怎么算_数学基础 —— 向量运算:点乘和叉乘

    两个向量的点乘和叉乘怎么算_数学基础 —— 向量运算:点乘和叉乘向量的点乘:a*b公式:a*b=|a|*|b|*cosθ点乘又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;是标量。点乘反映着两个向量的“相似度”,两个向量越“相似”,它们的点乘越大。向量的叉乘:a∧ba∧b=|a|*|b|*sinθ向量积被定义为:模长:(在这里θ表示两向量之间的夹角(共起点的前提下)(0°≤θ≤180°),…

    2025年6月8日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号