用字符串连接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
相关推荐
1 :普通SQL语句可以用Exec执行 例: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类...
1 :普通SQL语句可以用Exec执行 eg: Select * from tableName Exec( select * from tableName ) Exec sp_executesql N select * from tableName -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类...
注意:在执行拼接SQL 语句的时候,的EXEC括号中只允许包含一个字符串变量,但是可以串联多个变量,如果我们直接执行这个SQL语句: --这是错误的调用 EXEC ('SELECT * FROM '+QUOTENAME(@TableName) +'WHERE...
1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...
1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为...
使用SQL语句 用...代替过长的字符串显示 语法: SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename Access数据库:SELECT iif(len...
普通SQL语句可以用Exec执行 2、字段名,表名,数据库名之类作为变量时,必须用动态SQL 3、输出参数 (“一网打尽”通用SQL数据库的查询语句 ) 如:eg: Select * from tableName Exec('select * from tableName') ...
本文以一个C#的SQL数据库字串操作函数为例,说明如何实现对SQL字符串过滤、检测SQL是否有危险字符、修正sql语句中的转义字符,确保SQL不被注入等功能。具体实现代码如下: SQL字符串过滤函数: public static bool ...
1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + ...
1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' +...
void exec()执行SQL语句。 vector<string> getrecord(const int &columncount;,_variant_t...)返回字段结果集 --------------------- 作者:shanjingongzi 来源:CSDN 原文:...
不要使用拼接字符串的方式构造SQL语句而采用参数命令 使用存储过程 存储过程在数据库中 只能执行存储过程中固定的代码 限制输入长度 防止黑客输入超大字符串,导致服务器瘫痪 防止黑客输入较长的恶意脚本等 ...
此方法将返回一个 SqlParameter 对象数组,这些对象已使用缓存(与传递给该方法的连接字符串和命令文本相对应)中的参数的名称、值、方向和数据类型等进行了初始化。 注意: 用作参数集的键的连接字符串通过简单的...
精心收集整理的各种SQL语句示例,帮助您更加容易的熟悉和使SQL。 1 DECLARE @local_variable 1.1 使用 DECLARE 以下示例将使用名为 @find 的局部变量检索所有姓氏以“Man”开头的联系人信息。 USE AdventureWorks;...
sp_executesql 执行可以多次重用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。 语法 sp_executesql [@stmt =] stmt [ {, [@params =] N’@parameter_name...
PDO->exec() — 处理一条SQL语句,并返回所影响的条目数 PDO->getAttribute() — 获取一个“数据库连接对象”的属性 PDO->getAvailableDrivers() — 获取有效的PDO 驱动器名称 PDO->lastInsertId() — 获取写入的...
① 参数sqlstr 为执行的sql语句,参数constr为数据库连接字符串。 ② 作用通过执行sql语句来实现对数据库的操作。 函数二:otsdb.GetDataSet(sqltbnm, constr)函数使用 ① 参数sqltbnm 为数据表的名称,参数...
此方法将返回一个 SqlParameter 对象数组,这些对象已使用缓存(与传递给该方法的连接字符串和命令文本相对应)中的参数的名称、值、方向和数据类型等进行了初始化。 注意: 用作参数集的键的连接字符串通过简单的...
阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 序言 I 致谢III 前言 V 第1章 逻辑查询处理 1.1 逻辑查询处理的...
利用 MSFESQL 服务,SQL Server 可超出 SQL 标准对字符串列执行更为复杂的搜索。 MSFTESQL 服务担当了以下角色: 索引支持 MSFTESQL 实现了为数据库定义的全文目录和索引。 查询支持 MSFTESQL 可处理...