查询条件为文本格式时要求用引号,如varchar、char类型等,反之数值格式不要加引号,如bit、double、float、int类型等。举个例子slecet from A where id='1'slecet from A where id=1这两个的区别在于第一条id是字符型的,第二条id为数值型的
set quoted_identifier off
go
在程序关加上这段代码,双引号就会被SQL识别。
引用帮助:“
使 Microsoft® SQL Server™ 遵从关于引号分隔标识符和文字字符串的 SQL-92 规则。由双引号分隔的标识符可以是 Transact-SQL 保留关键字,或者可以包含 Transact-SQL 标识符语法规则通常不允许的字符。
语法
SET QUOTED_IDENTIFIER { ON | OFF }
注释
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。有关更多信息,请参见使用标识符。文字可以由单引号或双引号分隔。
”
SQLServer使用两个单引号之间的部分,来表示一个字符串,select from ADO where z1 > '2015/2/12 11:00:57',这个语句z1是datetime类型的,数据库引擎将单引号之间的部分(也就是2015/2/12 11:00:57这个部分),先隐式转换为datetime类型,然后再跟z1进行比较运算,你写的这个语句完全等价于select from ADO where z1 > CONVERT(datetime,'2015/2/12 11:00:57')
这个不是三引号,而是一个单引号,一个双引号,双引号是你这句代码中拼接字符串用的,因为你的userinfologinname
是个变量,如果是个写死的字符串可以直接where
loginname='admin'
set @str=''
这里是 为 @str 这个变量,设置一个初始的值, 为 长度为0的字符串。
目的是,万一下面的
select @str=@str+ cast(学号 as varchar(100))+ ','
from table2 where 班级=@int
没有记录
那么 再下面的
Set @str = SubString(@str,1,len(@str)-1)
不会发生异常。
否则的话,一个变量,没有初始化, 对这个变量,执行
SubString(@str,1,len(@str)-1)
的 *** 作, 将导致异常发生。
以上就是关于SQL中什么情况下用引号全部的内容,包括:SQL中什么情况下用引号、谁能帮我解决想数据库插入单引号的问题、SQLServer 数据库的特殊符号是怎么用的比如单引号和双引号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)