问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql server Quotename的问题

发布网友 发布时间:2022-05-01 13:31

我来回答

5个回答

懂视网 时间:2022-05-01 17:52

@tbname varchar(256),@sql varchar(256) set @tbname=‘index‘ ---查这个表里的数据: print(@tbname) set @sql = ‘select * from ‘+QUOTENAME(@tbname) print(@sql) exec(@sql)

 

SQL2008关于quotename的用法

标签:dex   div   style   rom   span   arc   sql   blog   数据   

热心网友 时间:2022-05-01 15:00

QUOTENAME (Transact-SQL):返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 SQL Server 分隔标识符。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。
语法: QUOTENAME ( 'character_string' [ , 'quote_character' ] )
参数
'character_string'
Unicode 字符数据构成的字符串。 character_string 是 sysname 值,并且不得超过 128 个字符。 超过 128 个字符的输入将返回 NULL。
'quote_character'
用作分隔符的单字符字符串。 可以是单引号 (')、左方括号或右方括号 ([]) 或者英文双引号 (")。 如果未指定 quote_character,则使用方括号。
返回类型:nvarchar(258)
示例
以下示例接受字符串 abc[]def 并使用 [ 和 ] 字符来创建有效的 SQL Server 分隔标识符。
SELECT QUOTENAME('abc[]def');
下面是结果集:
[abc[]]def]

(1 row(s) affected)
请注意,字符串 abc[]def 中的右方括号有两个,用于指示转义符。

结果中,第一个 "]"的意思是告诉系统,第二个"]"是数据的一部分而不是分隔符,第三个也就是最后一个"]"才是分隔符。就好比SQL的一个字符串中,如果你的字符串里面有单引号,则需要转义,也就是 '这是一个''用于显示的单引号',这里中间的两个单引号跟例子里面的两个反中括号效果一样

热心网友 时间:2022-05-01 16:18

select quotename('abc[aa]def') 默认【】 为什么有】二个。是要区分
select quotename('abc[aa]def','"') ,自己加一个分割

--函数QUOTENAME
--功能:返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的Microsoft SQL Server 2005 分隔标识符。
--语法
QUOTENAME ( 'character_string' [ , 'quote_character' ] )
--举例说明:
--比如你有一个表,名字叫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))
--结论
/*
初步理解为解决有些对象是SQLSERVER关键字的情况,即用该函数规范对象名,以便程序顺利运行
*/

热心网友 时间:2022-05-01 17:53

这主要用于转义访注入

比如:
Quotename(内容,'''')--生成字符'内容'
Quotename(内容)--生成字符[内容]

参照例子
https://technet.microsoft.com/zh-cn/library/ms161953(v=sql.105).aspx

热心网友 时间:2022-05-01 19:44

我执行出来是 [abc[aa]]def]
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
imba里能抽到什么好装备 DOTA IMBA神器抽奖抽到几率和大野爆的几率。还有小鸡无限眼的BUG能不能... 《魔兽世界》怀旧服玩具获取方法 求最好的手机杀毒软件 手机杀毒软件哪个好用 2023年最旺女孩名字有草有水296个 我的世界红石电梯怎么制作 怎么用微信申请微信号? 有些网页不能复制,可我想要复制下来,该怎么弄啊? 电脑网址怎么保存电脑怎么收藏网址 怎么办,还是最想去土耳其? 华硕电脑启动不了 显示英文字母那些界面 南京这两天房价降了吗 贵州遵义到山东日照地图路程 南京市妇幼保健院到鼓楼复地新都小区有多少公里 山东日照在河南安阳什么方向 华硕笔记本电脑开机出现一堆英文字母,进入不了系统,便强制关机了? 南京复地新都国际小区周边交通怎么样?堵吗? 图幅相同,比例尺最小的是 复地新都国际住着觉得舒服吗?各方面性价比如何? 日照市山东路文化馆群星剧场的具体位置地图 真有人参果吗? 复地新都国际怎么样?好不好?值不值得买? 日照地图 东港区,秦楼街道厉家村到日照港有多远? 手机上QQ群信息太多,怎么清屏一下,减少内存?亲 【复地新都国际南区】这个小区邻里关系如何?购房者都是哪种类型? 这种果叫什么名字?不是猕猴桃,也不是奇异果。味道甜蜜,父母说是人参果,但看了网上的又不像。 面条怎么读英语? 特急!日照城区地图 人心果 是什么? 面条的英语如何读 人心果为什么会有酸味 谁有日照的实景地图啊?大神们帮帮忙 求小区名“复地新都国际”英文翻译,谢谢! 华硕笔记本电脑开机都是英文开不开机 华硕电脑开机时显示英文无法开机? 双模手机质量好还是单模手机质量好? 现在手机选5G单模NSA还是双模NSA\SA的适合? 手机单卡双模和双卡双模哪个好? 现在是单模手机好,还是双模手机好呢?各有什么好处呢? 密码忘了,手机号换了怎么找回? 买双模手机好还是买单模手机好呢? 智能手机中,双模(双卡)手机和单模(单卡)手机在质量上有什么区别?是否双模手机比单模手机更耗电一些 qq游戏里面捕鱼大亨的背景音乐 我的捕鱼大亨怎么没有声音了啊? 明朝时代的游戏音乐 三星i9001可以下载捕鱼游戏吗。? 凯迪拉克xts手机投屏教程 凯迪拉克xts怎么用数据线连接手机听歌 凯迪拉克xts怎么把手机音乐连到导航上网 凯迪拉克XT5AndroidAuto怎么连接手机