您好,欢迎访问一九零五行业门户网

Sql server 数据库中,纯SQL语句查询、执行 单引号问题

在默认情况下, select 'abc',titile from tb_name; ---输出内容 是abc; 如果想输出 单引号 'abc,需要使用select '''abc',titile from tb_name; ---这里用三个单引号'''abc; select '''abc''',title from tbname; 输出内容是'abc';两边带有单引号; 谨记
在默认值情况下,
select 'abc',titile from tb_name;  ---输出内容 是abc;
如果想输出 单引号 'abc,需要使用select '''abc',titile from tb_name; ---这里用三个单引号'''abc;
select '''abc''',title from tbname;   输出内容是'abc';两边带有单引号;
谨记:如果字符串包含单引号,则需要在单引号前再增加一个单引号。
exec('select * from tbname')  sql语句两边有单引号'可以执行,没有时exec(select * from tbname)不能执行。 
set @name='name'; 
select @name from a123 ;  --1
select name from a123;  --2
exec('select '+ @name+' from a123');  --3
exec('select '+ 'name'+' from a123');  --4
在连接纯字符串中,'+'  单引号加号单引号  可以加在任何位置,这条规律方便引入变量的加入。exec('select '+ 'name'+' from a123'); 可将'+'删除,变成exec('select name from a123');或者exec('select'+' name from a123');  效果一样,无本质区别。
以上四句执行语句中,2、3、4句执行结果是相同的,均等同于第2句;1执行语句等同于select 'name' from a123;
三种情况:声明的变量、常量、列名。
第一步,先声明变量, exec('update '+ @tbname+' set name=''' + @tbname + '''')  
第二步,在 ''+ 或者 +'' 中插入常量exec('update '+ @tbname+' set name=''mirror' + @tbname + 'mirror''')  
第三步,加入列名,,在变量旁边 +'''' 或者 ''''+ 位置处 修改为 +'''+name' 或者 'name+'''+。 原始数据 exec('update '+ @tbname+' set name=name+'''+@tbname+'''+name');
exec('update '+ @tbname+' set name=''mirror''+name+'''+@tbname+'''+name')。
godeclare @tbname varchar(100)declare curb cursor for select name from sys.tables open curb fetch next from curb into @tbname while @@fetch_status=0 begin --exec('update '+ @tbname+' set name=name+'''+@tbname+'''') --1 --exec('update '+ @tbname+' set name='''+@tbname+'''+name') --2 列的名称需要修改,修改该哪一个列? 修改两个name值即可。 --exec('update '+ @tbname+' set name='''+@tbname+'mirror''+name') --3 --变量加常量加列名 --exec('update '+ @tbname+' set name=''mirror''') exec('update '+ @tbname+' set name=''mirror'+@tbname+'''+name') --4 --常量加变量加列名 exec('update '+ @tbname+' set name='''+'mirror'+@tbname+'''+name') --5 --常量加变量加列名 --exec('update '+ @tbname+' set name=''' + @tbname + '''') -- --exec('update '+ @tbname+' set name=name') --7 --exec('update '+ @tbname+' set name=''mirror''+name+'''+@tbname+'''+name') --8 常量加列名加变量加列名
--exec('update '+ @tbname+' set name=''mirror''+name') --9 常量加列名
fetch next from curb into @tbname end close curbdeallocate curb
从第2行实现第五行代码,首先在加号附近加上 ' 字符串内容 '+  or   +' 字符串内容 ' 。
根据第4、5行,在字符串中加入 '+' 对代码无影响,可以将其删除。
以上代码实现的功能,遍历数据库中的所有表,并依次在每一个表中执行更改语句,比如 --1中 将表中name字段的内容加上表名。
如何在exec语句中加单引号?
写出原始语句  update  @tbname   set name = name + @tbname
首先首尾加单引号;声明的变量前面加 '+,后面加 +';最后看赋值部分,需要使用单引号包围声明的变量,需要使用两个单引号。
根据表名来输出执行每个表的sql语句
use db_test; --修改数据库名称 select 'update' + name + ' set title = ''' + name + '''+title' as sql --name获取的是数据库中所有表的名称;--表名称+title --修改title(列名称)from sys.tables;
use db_test; --修改数据库名称 select 'update ' + name + ' set title = ''' + name + '''+title+''abc'''from sys.tables;
use db_test; --修改数据库名称 select 'update ' + name + ' set title = ''abc' + name + '''+title+''abc''' --title是表中title列中的内容,from sys.tables;
use db_test;declare @result varchar(255)set @result = '';select @result='update ' + name + ' set name = ''' + name + '''+name'from sys.tables;exec(@result) --只能执行一句 只能更改一个表。
其它类似信息

推荐信息