关于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


相关推荐

  • js怎么让指定方法先后顺序_jquery固定table表头

    js怎么让指定方法先后顺序_jquery固定table表头当时遇见这个问题是医院手麻系统大批量数据展示,由于是旧项目系统没有使用到前端的架构只能使用JQ,JS,css完成也谢谢给予我支持的同行们固定首行数据:采用函数的方式进行JQ/***

    2022年8月2日
    12
  • 如何查看Vue项目vue的版本号

    如何查看Vue项目vue的版本号如果是用vue-cli创建的项目,则找到项目根目录下的”package.json”文件如果是要查看vue-cli的版本号的话,则键盘Win+R,输入cmd,再在cmd里面输入vue-V

    2022年5月20日
    67
  • protel相关资料

    protel相关资料PCB设计技巧问与答Q:请问就你个人观点而言:针对模拟电路(微波、高频、低频)、数字电路(微波、高频、低频)、模拟和数字混合电路(微波、高频、低频),目前PCB设计哪一种EDA工具有较好的性能价格比(含仿真)?可否分别说明。A:限于本人应用的了解,无法深入地比较EDA工具的性能价格比,选择软件要按照所应用范畴来讲,我主张的原则是够用就好。常规的电路设计,INNOVEDA的PA

    2022年6月7日
    35
  • 月之暗面完成5亿美元C轮融资

    月之暗面完成5亿美元C轮融资

    2026年3月12日
    1
  • 永恒之蓝封445端口方法_永恒之蓝病毒解决方法

    永恒之蓝封445端口方法_永恒之蓝病毒解决方法补丁下载地址http://www.catalog.update.microsoft.com/search.aspx?q=kb4012212下载第二个,33.2M的那个,然后安装,并重启。然后,封445端口新建两个文件:block_445.reg内容为:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE…

    2022年10月17日
    7
  • 高通modem启动过程_高通8953启动流程【转】

    高通modem启动过程_高通8953启动流程【转】高通 8953 启动流程嵌入式工程师有必要了解芯片启动过程 在分析 调试各种问题时都有可能涉及这方面知识 同时 这部分知识复杂 涉及到芯片内部架构 启动各个阶段软件代码执行顺序 启动模式等等 以常用的 MSM8953 芯片启动过程为例 进行宏观分析 处理器核心从上图看出 MSM8953 处理器有 5 个 分别为 1 APPS CortexA53cor 运行 Android 2 RPM ResourceP

    2026年3月26日
    2

发表回复

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

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