`

用字符串连接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

 

 

 

 

分享到:
评论

相关推荐

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

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

    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 Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc

    注意:在执行拼接SQL 语句的时候,的EXEC括号中只允许包含一个字符串变量,但是可以串联多个变量,如果我们直接执行这个SQL语句: --这是错误的调用 EXEC &#40;'SELECT * FROM '+QUOTENAME(@TableName&#41; +'WHERE...

    经典SQL语句大全

    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...

    SQL SERVER 中构建执行动态SQL语句的方法

    1 :普通SQL语句可以用exec执行 Select * from tableName exec&#40;'select * from tableName'&#41; exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为...

    经典全面的SQL语句大全

     使用SQL语句 用...代替过长的字符串显示  语法:  SQL数据库:select case when len(field)&gt;10 then left(field,10)+'...' else field end as news_name,news_id from tablename  Access数据库:SELECT iif(len...

    SQL应知道的动态SQL语句基本语法(总计82页Wrod)

    普通SQL语句可以用Exec执行 2、字段名,表名,数据库名之类作为变量时,必须用动态SQL 3、输出参数 (“一网打尽”通用SQL数据库的查询语句 ) 如:eg: Select * from tableName Exec('select * from tableName') ...

    C#检测是否有危险字符的SQL字符串过滤方法

    本文以一个C#的SQL数据库字串操作函数为例,说明如何实现对SQL字符串过滤、检测SQL是否有危险字符、修正sql语句中的转义字符,确保SQL不被注入等功能。具体实现代码如下: SQL字符串过滤函数: public static bool ...

    sql经典语句一部分

    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...

    数据库操作语句大全(sql)

    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' +...

    好用的C++ ado封装静态库。连接sql server ,oralce

    void exec()执行SQL语句。 vector&lt;string&gt; getrecord(const int &columncount;,_variant_t...)返回字段结果集 --------------------- 作者:shanjingongzi 来源:CSDN 原文:...

    SQL查询安全性及性能优化

    不要使用拼接字符串的方式构造SQL语句而采用参数命令 使用存储过程 存储过程在数据库中 只能执行存储过程中固定的代码 限制输入长度 防止黑客输入超大字符串,导致服务器瘫痪 防止黑客输入较长的恶意脚本等 ...

    .net数据访问类 SQL Helper 类

    此方法将返回一个 SqlParameter 对象数组,这些对象已使用缓存(与传递给该方法的连接字符串和命令文本相对应)中的参数的名称、值、方向和数据类型等进行了初始化。 注意: 用作参数集的键的连接字符串通过简单的...

    SQL示例大全.pdf

    精心收集整理的各种SQL语句示例,帮助您更加容易的熟悉和使SQL。 1 DECLARE @local_variable 1.1 使用 DECLARE 以下示例将使用名为 @find 的局部变量检索所有姓氏以“Man”开头的联系人信息。 USE AdventureWorks;...

    系统存储过程,sp_executesql

     sp_executesql 执行可以多次重用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。 语法 sp_executesql [@stmt =] stmt [ {, [@params =] N’@parameter_name...

    PHP中的PDO函数库

    PDO-&gt;exec() — 处理一条SQL语句,并返回所影响的条目数 PDO-&gt;getAttribute() — 获取一个“数据库连接对象”的属性 PDO-&gt;getAvailableDrivers() — 获取有效的PDO 驱动器名称 PDO-&gt;lastInsertId() — 获取写入的...

    c#操作mysql数据库类文件及使用说明

    ① 参数sqlstr 为执行的sql语句,参数constr为数据库连接字符串。 ② 作用通过执行sql语句来实现对数据库的操作。 函数二:otsdb.GetDataSet(sqltbnm, constr)函数使用 ① 参数sqltbnm 为数据表的名称,参数...

    SQLHelper.cs

    此方法将返回一个 SqlParameter 对象数组,这些对象已使用缓存(与传递给该方法的连接字符串和命令文本相对应)中的参数的名称、值、方向和数据类型等进行了初始化。 注意: 用作参数集的键的连接字符串通过简单的...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 序言 I 致谢III 前言 V 第1章 逻辑查询处理 1.1 逻辑查询处理的...

    sql2005全文检索.doc

    利用 MSFESQL 服务,SQL Server 可超出 SQL 标准对字符串列执行更为复杂的搜索。  MSFTESQL 服务担当了以下角色:  索引支持  MSFTESQL 实现了为数据库定义的全文目录和索引。  查询支持  MSFTESQL 可处理...

Global site tag (gtag.js) - Google Analytics