SQL语句的+号的问题
SQL如下:SET@sql='ALTERTABLEdbo.临时表1ADD['+@银行帐号名称+']INTDEFAULT0'EXECUTE(@sql),问题,为什么@银行帐...
SQL如下:
SET @sql='ALTER TABLE dbo.临时表1 ADD ['+@银行帐号名称+'] INT DEFAULT 0'
EXECUTE(@sql),
问题,为什么@银行帐号名称前面有两个加号呢,前面的+号可以 省略吗 ?后面的+号可以省略吗?还有 [] 这个括号是干什么用的,不是有单引号了吗?为什么还需要[],
请高手指教,不懂得 或者不清楚的,请不要发言 展开
SET @sql='ALTER TABLE dbo.临时表1 ADD ['+@银行帐号名称+'] INT DEFAULT 0'
EXECUTE(@sql),
问题,为什么@银行帐号名称前面有两个加号呢,前面的+号可以 省略吗 ?后面的+号可以省略吗?还有 [] 这个括号是干什么用的,不是有单引号了吗?为什么还需要[],
请高手指教,不懂得 或者不清楚的,请不要发言 展开
4个回答
2015-12-22 · 知道合伙人软件行家
关注
展开全部
sql 中的 + 号可以做运算符 +,也可以做为连接符。
一、两端都为数值 ,如 select 1+2 ,即返回3
二、两端引用字段,如 select a + b
1、a、b均为字符类型 ,做为连接符,即 a=1,b=1 select a+b 返回 11
2、a、b均为数值类型,做为运算符 ,即 a=1,b=1 select a+b 返回 2
3、a、b其中一列为数值型,那么系统会先尝试将字符列转数值,转换成功,以运算符运算,转换失败则报错。
如 a = '1' ,b=1, select a+b 返回 2 ,
而 a='a',b=1 ,select a+b 则系统报错。
该情况,不同的数据库管理系统,处理略有不同,比如部分数据库不会尝试转换,而是直接报错。
一、两端都为数值 ,如 select 1+2 ,即返回3
二、两端引用字段,如 select a + b
1、a、b均为字符类型 ,做为连接符,即 a=1,b=1 select a+b 返回 11
2、a、b均为数值类型,做为运算符 ,即 a=1,b=1 select a+b 返回 2
3、a、b其中一列为数值型,那么系统会先尝试将字符列转数值,转换成功,以运算符运算,转换失败则报错。
如 a = '1' ,b=1, select a+b 返回 2 ,
而 a='a',b=1 ,select a+b 则系统报错。
该情况,不同的数据库管理系统,处理略有不同,比如部分数据库不会尝试转换,而是直接报错。
展开全部
不可以省略,@银行帐号名称是一个变量,也是一个字符串。
SET @sql='ALTER TABLE dbo.临时表1 ADD ['+@银行帐号名称+'] INT DEFAULT 0'其实就是执行了三个字符串的相加操作,把结果赋值给@sql变量。
[]括号是为了兼容SQL SERVER里的关键字,如果字段名是关键字的话,某些版本的SQL SERVER会报错,所以要用[]括起来。
SET @sql='ALTER TABLE dbo.临时表1 ADD ['+@银行帐号名称+'] INT DEFAULT 0'其实就是执行了三个字符串的相加操作,把结果赋值给@sql变量。
[]括号是为了兼容SQL SERVER里的关键字,如果字段名是关键字的话,某些版本的SQL SERVER会报错,所以要用[]括起来。
追问
三个字符串相加 ,您 能告诉我是 哪三个字符串相加啊,我怎么找不出是哪三个 字符串 啊,还请耐心指点
追答
单引号包含的就是字符串。
'ALTER TABLE dbo.临时表1 ADD [‘是一个字符串,'] INT DEFAULT 0'也是一个字符串,@银行帐号名称是一个字符串型的变量,也是一个字符串。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果@银行帐号名称 = pufa
相当于执行语句
ALTER TABLE dbo.临时表1 ADD [pufa] INT DEFAULT 0
@sql 是在拼执行语句。
因为语句中需要调用变量,所以要先拼出sql串,再执行
+号的作用是把两个字符串连在一起,
2个+号就把3个字符串连到了一起
[] 是把字段名括起来 ,用来定界,防止有空格等字符出现在字段里
相当于执行语句
ALTER TABLE dbo.临时表1 ADD [pufa] INT DEFAULT 0
@sql 是在拼执行语句。
因为语句中需要调用变量,所以要先拼出sql串,再执行
+号的作用是把两个字符串连在一起,
2个+号就把3个字符串连到了一起
[] 是把字段名括起来 ,用来定界,防止有空格等字符出现在字段里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先解决"[]"的问题是:T_SQL语法已经规定凡是对对象命名不符合标准命名的,如你给对象命名时出现了特殊字符如空格,加号,等特殊字符需在对象名前加上[]或"",这样不会出错否则就出错。然后说加号问题,它的作用是连接字符串只要你要连接字符串必须用它
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询