SQL Server中quotename()函数的用法

SQL Server中quotename()函数的用法原文链接:https://blog.csdn.net/zengcong2013/article/details/43485837首先,sqlserver里的标识符有一定的规则,比如你createtableabc123(…)那么中间含有空格,它不是符合规则的。你会写做createtable[abc123](….)即以[]来定界标识符。quotename…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原文链接:https://blog.csdn.net/zengcong2013/article/details/43485837

首先,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/164263.html原文链接:https://javaforall.net

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


相关推荐

  • 初级程序员面试题总结(一):

    本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。1,谈一谈spring。答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容…

    2022年4月8日
    56
  • CSDN Chrome插件来了。助开发者提升开发效率,远离996

    插件定位帮助开发者提升开发效率,远离996特点以搜索框为入口,集成开发者常用工具,提升开发效率主要功能如下:支持本地书签、tab页、历史记录搜索集成CSDN搜索结果,本地内容和远程结果无缝集成所有操作都支持快捷键,提升搜索效率他是一个时间转换工具他是一个计算器他是。。。,更多功能正在添加中安装下载安装包浏览器输入地址“chrome://extensions/”进入扩展程序页面,开启开发者模式以下操作任选其一:zip文件安装:点击“加载已解压的扩展程序”按钮,选择已解压

    2022年4月8日
    62
  • C#代码对齐_代码中那个向下对齐

    C#代码对齐_代码中那个向下对齐有以下几种办法:1、VS2005用Ctrl+E+D2、VS2008用Ctrl+K+D3、删除最后一个花括号,重新打上4、Ctrl+A(全选)–>Ctrl+X(剪切)–>Ctrl+V(再粘回来)5、选中代码(不含注释行),点取消注释。string与stream互转stringstr=”Thisisstring.”;…

    2022年9月9日
    2
  • 安装Chrome驱动[通俗易懂]

    安装Chrome驱动[通俗易懂]相信许多小伙伴在学习selenium时候遇到驱动器无法运行的错误,就跟我一样,所以写一篇博客讲一讲如何安装这就是谷歌浏览器驱动没有安装成功而产生的报错。下面我给大家简单说说如何安装谷歌驱动器。Windows系统1.下载谷歌浏览器可以参考以下链接https://www.google.cn/intl/zh-CN/chrome然后检测自己的版本2.下载对应的Chrome驱动参考以下的链接http://npm.taobao.org/mirrors/chromedriver/应该可以看到以下

    2022年6月29日
    29
  • Java递归下降分析器_递归下降语法分析器[通俗易懂]

    Java递归下降分析器_递归下降语法分析器[通俗易懂]用java语言编写的递归下降语法分析器,是一种适合手写语法编译器的方法,且非常简单。递归下降法对语言所用的文法有一些限制,但递归下降是现阶段主流的语法分析方法,因为它可以由开发人员高度控制,在提供错误信息方面也很有优势。就连微软C#官方的编译器也是手写而成的递归下降语法分析器。使用递归下降法编写语法分析器无需任何类库,编写简单的分析器时甚至连前面学习的词法分析库都无需使用。我们来看一个例子:现在有…

    2022年6月29日
    25
  • Snmp学习笔记

    Snmp学习笔记

    2021年12月1日
    45

发表回复

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

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