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

原文: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;

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)   --只能执行一句  只能更改一个表。

 

 

 

时间: 2024-08-27 07:00:38

Sql server 数据库中,纯SQL语句查询、执行 单引号问题。的相关文章

SQL Server 数据库中的几个常见的临界值

原文:SQL Server 数据库中的几个常见的临界值     本文出处:http://www.cnblogs.com/wy123/p/6709520.html    1,SQL语句或者存储过程的最大长度(SQL字符串容量)是多少? 经常有人问,我的SQL语句是拼凑出来的,可能很长,如果太长了,是不是SQL Server支持不动了? SQL语句的或者存储过程的最大长度是65,536 * Network packet size,那么这个Network packet size是个什么鬼? 参考如下截

sql server 2005中如何用语句查看 人员表 中每个人的电子邮箱域名?

问题描述 sql server 2005中如何用语句查看 人员表 中每个人的电子邮箱域名? sql server 2005中如何用语句查看 人员表 中每个人的电子邮箱域名?老师说方法有很多,然而刚开始学习数据库的小弟我并不知道,敬请大神们指点 解决方案 楼主问的问题应该是这样的,qqqq@126.com 查询结果是 126.com 可以试一下下面的方法select substring(email_address charindex('@'email_address1)+1len(email_ad

在SQL Server数据库中批量导入数据

第一:使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中. 在使用这条语句的时候,需要注意几个方面的内容. 假设有一个表table1,字段为f1(int).f2(varchar(50)).  代码如下 复制代码 SELECT*INTO table2 FROM table1 这条SQL语的在建立table2表

SQL Server数据库中批量导入数据的四种方法总结_MsSql

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些. 第一:使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中.

SQL Server数据库中批量导入数据的2种方法_MsSql

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些.相信以下方法大家都用过了,温故而知新哈,如果有更好的方法希望大家都提出来~ 一.使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的

SQL Server数据库中批量导入数据的2种方法

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些.相信以下方法大家都用过了,温故而知新哈,如果有更好的方法希望大家都提出来~ 一.使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的

探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页

探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名    [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键    [title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,  --红头文件的

SQL Server数据库中批量导入数据的四种方法总结

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些. 第一:使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中.

sql-在Csharp中实现SQL Server数据库中的UniqueIdentifier数据类型

问题描述 在Csharp中实现SQL Server数据库中的UniqueIdentifier数据类型 实现对数据库的条件查询表结构:表数据示例:错误信息:1.2. 解决方案 你注意,一个是lid,一个是selllistno,不是一个字段,前者是guid 解决方案二: 你这个是流水号,一个string,不是guid,没法转,用string就可以了. 解决方案三: 解决方案四: uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(GUID)一样.GUID是唯一的