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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java静态变量加载顺序_内部类为什么不能有静态

    java静态变量加载顺序_内部类为什么不能有静态静态内部类加载顺序我们先来区分一下两个概念:类加载、加载。类加载的过程包括加载,初始化,验证,解析,准备,初始化等五个过程。加载是类加载的一部分。区分完这两个概念之后我们再来看下面的问题。我们声明一个类,这个类有个内部静态类。还有主函数,当我们启动程序之后,运行javaapplication……

    2022年10月10日
  • window.onresize 怎么用_仅完成部分readprocess如何解决

    window.onresize 怎么用_仅完成部分readprocess如何解决BOOLWriteProcessMemory(HANDLEhProcess,//进程的句柄(可由OpenProcess函数返回)LPVOIDlpBaseAddress,//进程地址LPVOIDlpBuffer,//数据当前存放地址DWORDnSize,…

  • 前端单元测试总结_javascript单元测试

    前端单元测试总结_javascript单元测试1.为什么需要单元测试正确性:测试可以验证代码的正确性,在上线前做到心里有底自动化:当然手工也可以测试,通过console可以打印出内部信息,但是这是一次性的事情,下次测试还需要从头来过,效率不能得到

  • (python源码,详细注解 )多目标粒子群算法 mopso

    (python源码,详细注解 )多目标粒子群算法 mopso1本代码功能用多目标粒子群算法(mopso)寻找pareto最优解集2算法介绍2.1简单步骤:(1)初始化群体粒子群的位置和速度,计算适应值(2)根据pareto支配原则,计算得到Archive集(存放当前的非劣解)(3)计算pbest(4)计算Archive集中的拥挤度(5)在Archive集选择gbest(6)更新粒子的速度、位置、适应值(7)更新Archive集(还要注意防止溢出)(…

  • 计算机运行游戏卡顿,电脑玩游戏卡怎么办几种实用解决方法

    计算机运行游戏卡顿,电脑玩游戏卡怎么办几种实用解决方法现在很多朋友都喜欢玩游戏,虽然大多数人都是用手机玩游戏了,但还是有一些比较好玩的游戏是需要电脑上玩的,而有时候我们会遇到电脑玩游戏卡的问题,这是怎么回事呢?实际上这种问题需要用排除法来确定问题的所在,从而围绕问题来解决,这里U盘网就教大家由易到难的解决方案。我们需要确定是电脑硬件慢还是系统慢,还是网络慢。一、网络导致游戏卡顿首先我们可以从游戏的卡顿表现来判断是网络问题还是系统的问题,一般来说如果是…

  • 逻辑漏洞之越权、支付漏洞「建议收藏」

    逻辑漏洞之越权、支付漏洞「建议收藏」目录逻辑漏洞Web安全渗透三大核心方向输入输出登录体系、权限认证业务逻辑漏洞分类1、登录体系安全暴力破解cookie安全加密测试登录验证绕过任意注册2、业务一致性安全手机号篡改邮箱和用户名更改订单ID更改商品编号更改用户ID篡改流程顺序3、业务数据篡改金额数据篡改商品数量篡改最大数限制突破金额&优惠组合修改4、密码找回漏洞分析数据包,定位敏感信息分析找回机制修改数据包验证任意密码找回5、验证码突破暴力破解时间、次数突破回显测试验证码绕过测试验证检验机制猜解6、会话权限安全未授权访问水平&垂直

发表回复

您的电子邮箱地址不会被公开。

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