Sql server 数据库中,纯SQL语句查询、执行 单引号问题。
2014-12-01 16:02
926 查看
原文:Sql server 数据库中,纯SQL语句查询、执行 单引号问题。在默认值情况下,
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;
从第2行实现第五行代码,首先在加号附近加上 ' 字符串内容 '+ OR +' 字符串内容 ' 。
根据第4、5行,在字符串中加入 '+' 对代码无影响,可以将其删除。
以上代码实现的功能,遍历数据库中的所有表,并依次在每一个表中执行更改语句,比如 --1中 将表中Name字段的内容加上表名。
如何在exec语句中加单引号?
写出原始语句 update @tbName set Name = Name + @tbName
首先首尾加单引号;声明的变量前面加 '+,后面加 +';最后看赋值部分,需要使用单引号包围声明的变量,需要使用两个单引号。
根据表名来输出"执行每个表的SQL语句"
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;
use db_Test; --数据库名称需要修改 go declare @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 --表名加Mirror exec('update '+ @tbName+' set Name=''Mirror'+@tbName+'''+Name') --4 --Mirror加表名 exec('update '+ @tbName+' set Name='''+'Mirror'+@tbName+'''+Name') --5 --Mirror加表名 --exec('update '+ @tbName+' set Name=''' + @tbName + '''') --6 --exec('update '+ @tbName+' set Name=Name') --7 fetch next from Curb into @tbName end close Curb deallocate 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) --只能执行一句 只能更改一个表。
相关文章推荐
- Sql server 数据库中,纯SQL语句查询、执行 单引号问题。
- Sql server 数据库中,纯SQL语句查询、执行 单引号问题。
- [Oracle]客户端查询数据库最近执行的SQL语句
- sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
- T-SQL:SQL Server-数据库查询语句基本查询
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- MySQL、SQL Server、Oracle 3种数据库查询表中前N行记录的SQL语句
- SQL Server查询SQL语句的执行时间
- 查询SQL Server执行过的SQL语句
- Oracle 数据库 查询 执行sql语句的机器名
- sql server 各种查询sql语句的分页存储过的执行效率
- 优化SQL查询:如何写出高性能SQL语句1、首先要搞明白什么叫执行计划?执行计划是数据库根据SQL
- sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- T-SQL(标准数据库查询语句) 在SQL Server 2008 下面的 Create、Update,Delete、Select
- 数据库-Oracle【SQL模糊查询语句(like) 及SQL Server 2005 导入和导出向导】
- 数据库-Oracle【SQL模糊查询语句(like) 及SQL Server 2005 导入和导出向导】
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- 关于数据库查询语句SqlDataReader的连接释放问题的解决办法
- Sql Server系列:SQL语句查询数据库中表、视图、存储过程等组成