sql 存储过程拼接动态SQL的问题
小弟有如下一个存储过程
现在有个问题是在ssms中调试这个存储过程时,可以正常读到数据,但是在c#中传入相同的值时,却报错“=附近有语法错误”,我在SSMS把SQLprint出来是正常的,
CREATE PROC [dbo].[getField]
(
@TableName VARCHAR(100),
@ReturnField VARCHAR(100),
@ParamField VARCHAR(100),
@ParamValue VARCHAR(100)
)
AS
DECLARE @sql VARCHAR(1000)
DECLARE @Params VARCHAR(1000)
BEGIN
IF (@ParamValue IS NOT NULL)
BEGIN
SET @sql = 'select ' + @ReturnField + ' from ' + @TableName + ' where ' +
@ParamField+ '=' +'''' +@ParamValue+''''
END
ELSE
BEGIN
SET @sql = 'select ' + @ReturnField + ' from ' + @TableName
END
PRINT @sql
EXEC (@sql)
END
现在有个问题是在ssms中调试这个存储过程时,可以正常读到数据,但是在c#中传入相同的值时,却报错“=附近有语法错误”,我在SSMS把SQLprint出来是正常的,
select 部门 from 员工信息 where 工号='201403002'什么原因,求指导啊啊啊啊
...全文
相关推荐
SqlServer存储过程实现及拼接sql的注意点
在本文中,我们将深入探讨如何在SQL Server中创建存储过程以及在拼接SQL语句时需要注意的关键点。
sql\(很长的l模糊查询拼接)sql存储过程
#### 标题解读:“SQL(很长的L模糊查询拼接)SQL存储过程”标题中的“SQL(很长的L模糊查询拼接)”意味着该存储过程主要涉及的是通过字符串拼接的方式动态构建SQL查询语句,这里的“L”可能是指
在SQL存储过程中给条件变量加上单引号
在SQL存储过程中给条件变量加上单引号,不加语句会出问题,以下是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL)set @where=
sqlserver的存储过程与 where in 多值参数
你可以在存储过程中接收一个包含多个值的参数,如一个字符串,然后动态拼接`DELETE`或`SELECT`等SQL语句。
自动拼接sql
它允许用户将多个参数合并成一个完整的SQL字符串,以便在执行时通过`EXEC`函数使用。在SQL中,`EXEC`命令常用来动态执行存储过程或T-SQL语句。


