`

用字符串连接SQL语句并用EXEC执行时,出现名称 '‘不是有效的标识符

 
阅读更多

 用字符串连接SQL语句并用EXEC执行时,出现名称 '这里是字符串连接的一条SQL语句‘不是有效的标识符

 才发现,在写exec @sql 时,忘了在@sql加(),这样写 exec (@sql) 就不会出错了!

 

 

 

-- =============================================
-- Author:  <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <根据输入的职位类别、地区、关键字搜索>
-- =============================================
ALTER PROCEDURE [dbo].[GetHomeSearchPosts]
 @postType  varchar(100),
 @address   varchar(10),
 @key       varchar(100)
    --- @postType    @address 默认全部
AS
BEGIN
 
 SET NOCOUNT ON;

 

 


declare @sql varchar(5000),@where varchar(100),@where1 varchar(200)
 set @sql ='SELECT  A.ID, A.InputTime,A.PositionName,B.CompanyName,A.Adress,A.job_place1  from   Position AS A inner join  Company AS B ON    A.CompID =  B.CompanyID where  (  A.PositionName like ''% '+ @key +' %''  or   PrimaryPosition like   ''% '+ @key
 +' %'') '

 

    if(@postType='')
  begin
  set @where =''
  end
 else
  begin
   set @where = ' A.PrimaryPosition like ''%'  +   @postType + '%'''           

  end

 


 if(@address = ''  )
  begin
  set @where1 =''
  end
 else
  begin
   set @where1 = '( A.Adress  like ''%'  +   @address  + '%''  or  A.job_place1 like ''%' + @address     +'%'')'       

  end
 
 
  if(@where != '')
 set  @sql = @sql +' and '  + @where
 
  if(@where1 != '')
 set  @sql = @sql +' and '  + @where1
 


print @sql
exec (@sql)

 

END

 

 

 

 

分享到:
评论

相关推荐

    SQLServer动态SQL语句的用法

    SQL Server 动态 SQL 语句的用法 SQL Server 中的动态 SQL 语句是一种灵活的查询方式,它可以根据不同的情况生成不同的 SQL ...同时,需要注意动态 SQL 语句中的变量类型,例如使用 nvarchar 类型来存储字符串数据。

    access 一次执行多条sql语句

    1. **连接字符串**: 从配置文件中读取Access数据库的连接字符串。 2. **打开连接**: 使用`OleDbConnection`类创建一个连接,并调用`Open`方法打开连接。 3. **开始事务**: 通过`BeginTransaction`方法开始一个事务...

    动态SQL语句基本语法

    动态SQL语句是指使用字符串来构建SQL语句,然后使用EXEC或sp_executesql语句来执行的SQL语句。下面是动态SQL语句的一些基本语法和应用场景: 一、普通SQL语句可以用Exec执行 可以使用Exec语句来执行普通的SQL语句...

    ABAP SQL 语句 动态 操作

    在ABAP编程中,SQL语句的动态操作是高级编程技术的一个重要方面,它允许根据程序运行时的条件和用户输入来构建和执行SQL查询。本程序“ZSQL_EXEC_RICOO”展示了如何使用ABAP实现动态SQL操作,包括SELECT、UPDATE、...

    SQL语句字符串分割

    SQL语句字符串分割 在数据库管理系统中,字符串分割是一个非常常见的问题,特别是在处理逗号分割的字符串数据时。今天,我们将讨论如何在 T-SQL 中获取逗号分割的字符串数据中的元素。 方法一:利用循环逐个取出...

    在Sql Server查询语句中能不能用变量表示表名

    这通常涉及将字符串拼接成完整的SQL命令,然后使用`EXEC`或`sp_executesql`存储过程来执行这个命令。下面是一个简单的例子: ```sql DECLARE @tableName NVARCHAR(100) = 'MyTable'; DECLARE @sqlCommand NVARCHAR...

    SQL_EXEC_命令用法

    原因还是@i 不能放在''之内,它只能通过字符串连接动态的嵌入到 SQL 语句里: set @sql='select * from dbo.orders where rderid='+cast(@i as varchar(10)); 变量与字符串连接会引发所谓的 SQL 注入安全隐患,...

    Delphi adoquery处理多条SQL语句

    这里的关键点在于使用 `BEGIN...END` 包围多条 SQL 语句,并通过 `ExecSQL` 方法执行整个字符串中的所有语句。 ##### 2. 使用事务处理多条 SQL 语句 为了确保数据的一致性和安全性,通常会使用事务来包裹多条 SQL ...

    SQL Server EXEC和sp_executesql的区别

    - **变量拼接**:使用`EXEC`时,所有变量都必须直接拼接到SQL字符串中,不能使用参数化的方式。 - **性能问题**:每次执行`EXEC`时,SQL Server都会为SQL字符串创建一个新的执行计划,即使SQL文本完全相同也不例外。...

    动态SQL语句基本语法.doc

    需要注意的是,在使用 Exec 语句时,字符串前一定要加 N,以便正确地处理 Unicode 字符串。 2. 动态SQL语句中的变量 在动态SQL语句中,字段名、表名、数据库名等可以作为变量。例如: ``` declare @fname varchar...

    sql语句、动态SQL语句基本语法

    动态SQL是在运行时构建和执行的SQL语句,通常用于处理不确定的查询结构或在程序逻辑中生成SQL。这在需要根据用户输入或其他变量来改变查询条件时非常有用。 - 在大多数数据库系统中,动态SQL可以通过字符串拼接和...

    sql.rar_exec select_select_sql select from exec_普通sql大全

    1 :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec( select * from tableName ) Exec sp_executesql N select * from tableName -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类...

    动态SQL语句基本语法。动态SQL语句基本语法

    1 :普通SQL语句可以用Exec执行 例: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类...

    学习SQL应知道的动态SQL语句基本语法

    Exec语句可以执行以字符串形式存在的SQL语句,但需要注意的是,在使用Exec语句时,字符串前一定要加N,否则可能会出现乱码问题。 2. 使用变量作为字段名、表名、数据库名 在使用动态SQL语句时,字段名、表名、...

    SqlServer中用exec处理sql字符串中含有变量的小例子

    在SQL Server中,动态SQL是执行SQL语句的一种方式,特别是在需要在运行时构建SQL语句的情况下非常有用。`EXEC`或`sp_executesql`是执行这些动态SQL语句的关键函数。本例中,我们将深入探讨如何在SQL Server中处理...

    sql语句妙用,各种sql语句的详细用法与讲解

    在示例中,`DECLARE`用于定义变量,`SET`用于赋值,然后通过字符串拼接构造SQL语句,最后用`EXEC`或`sp_executesql`执行。 注意,当字符串包含在SQL语句中时,需要确保单引号的正确处理。例如,如果一个字符串中...

    .net中无法创建sql语句解决方案

    在.NET框架中,开发人员经常会遇到与数据库交互的问题,特别是在使用C#进行SQL语句构建时。本篇文章将深入探讨当在.NET环境中遇到无法创建SQL语句问题时的解决策略,帮助开发者更好地理解和处理此类问题。 ### .NET...

    动态SQL语句

    - 当使用EXECUTE()函数时,如果动态SQL语句中包含变量,则需要在字符串拼接时添加适当的转义字符或空格,以确保SQL语句的语法正确。 - Sp_Executesql支持参数化查询,这不仅提高了安全性,也优化了性能,因为可以...

Global site tag (gtag.js) - Google Analytics