关于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)
上一篇 2022年7月2日 下午10:16
下一篇 2022年7月2日 下午10:36


相关推荐

  • 中标麒麟6桌面版安装达梦7图解

    中标麒麟6桌面版安装达梦7图解中标麒麟 6 桌面版安装达梦 7 数据库一 系统环境准备二 资源包上传三 规划用户及权限等一 系统环境准备虚拟机软件 VMwareWorkst 操作系统 NeoKylin Linux Desktop 6 0 x86 64 iso 达梦数据库 dm7 setup rh6 64 ent 7 6 0 142 iso 工具 Xmanager 安装虚拟机操作系统这里就不展示了 网上随便一抓一大把 话

    2026年3月26日
    3
  • linux下kegg注释软件,科学网—生物信息——kegg分析的kobas软件的安装与使用 – 孙朋川的博文…

    linux下kegg注释软件,科学网—生物信息——kegg分析的kobas软件的安装与使用 – 孙朋川的博文…关于 kegg 的 ko 和 K 的分析 本以为可以通过 interproscan 来获取 谁知跑出来的结果只涉及新陈代谢 不能使用 最终还是使用北大开发的 kobas 做的 kegg 分析 关于 kobas 的简介 这里有网址 http kobas cbi pku edu cn help do 这个网址支持在线分析 不过对于 gene 数目大于 500 的 就不支持了 需要后台运行 kobas 当然 他们的服务器是可以外租的

    2026年3月17日
    2
  • python中columns的意思_对列布局columns的理解

    python中columns的意思_对列布局columns的理解01 多列属性 columnszyx45 这个属性 在浏览器的修改中 不会生效的 只有刷新页面才会有效果 目录 1 概念 2 写法 3columns column widthcolumn count4column count5column width6column gap7column rule7 1column rule width7 2column rule s

    2026年3月26日
    2
  • 【Custom Mutator Fuzz】Libprotobuf + AFLapp Custom Mutator[通俗易懂]

    【Custom Mutator Fuzz】Libprotobuf + AFLapp Custom Mutator[通俗易懂]这篇文章主要是在libprotobuf-mutator_fuzzing_learning开源模糊测试练习项目第4个练习的基础上进行详细讲解,主要内容为通过libprotobuf-mutator为AFL++提供自定义protobuf结构突变。练习和写作的过程中也是踩了不少的坑,文章末尾会有我遇到的全部问题及解决办法

    2025年11月8日
    5
  • 简单页面+java后台+数据库,实现从页面对数据库的增删改查

    简单页面+java后台+数据库,实现从页面对数据库的增删改查在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表我用一个新闻的例子来实现,首先编写java后台程序java后台程序:我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属性截个图首先是写功能写的顺序分别是从servlet,service,dao层…

    2022年5月22日
    36
  • Ajax 培训PPT「建议收藏」

    Ajax 培训PPT「建议收藏」Ajax培训PPT

    2025年10月31日
    7

发表回复

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

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