我有如下存储过程CREATE PROCEDURE SetUsersState
@u_state [tinyint],
@uID [varchar](2000)
AS
if @uID = '' return
declare @sql varchar(4000)
set @sql = 'update users set u_state =' +@u_state + ' where u_ID in(''' +@uID +''')'
exec(@sql)
GO执行exec SetUsersState 1,'11,12'时提示如下错误
服务器: 消息 245,级别 16,状态 1,过程 SetUsersState,行 9
将 varchar 值 'update users set u_state =' 转换为数据类型为 tinyint 的列时发生语法错误。
@u_state [tinyint],
@uID [varchar](2000)
AS
if @uID = '' return
declare @sql varchar(4000)
set @sql = 'update users set u_state =' +@u_state + ' where u_ID in(''' +@uID +''')'
exec(@sql)
GO执行exec SetUsersState 1,'11,12'时提示如下错误
服务器: 消息 245,级别 16,状态 1,过程 SetUsersState,行 9
将 varchar 值 'update users set u_state =' 转换为数据类型为 tinyint 的列时发生语法错误。
解决方案 »
- 微软虚拟机在拔掉网线的情况下,如何与宿主物理主机组成局域网。我想在拔掉物理机器上的网线后(即不与外界任何机器、网络、internet连网),在同一台机器上实现虚拟机访问物理主机上的数据库,以调试程序之用。如何解决?
- 前八位相似字母排序问题
- 求助。
- SQL语句union all语句的问题
- server内存较小,如何rebuild一张1000W表的索引
- 问个简单语句的查询效率!
- 求教将数据库查询出的结果再插入本表其他列的方法。
- 急!急!急!求一个SQL写法的思路,
- Sql 通用日期格式如何转换为UShort日期格式
- 求解答,谢谢
- 不等于怎么查询?
- primary key 和unique key 的区别
@u_state [tinyint],
@uID [varchar](2000)
AS
if @uID = ''
return
declare @sql varchar(4000)
set @sql = 'update users set u_state =' +rtrim(@u_state) + ' where u_ID in(''' +@uID +''')' --加上rtrim
exec(@sql)
@u_state [tinyint],
@uID [varchar](2000)
AS
if @uID = ''
return
exec( 'update users set u_state =' +@u_state + ' where u_ID in(''' +@uID +''')')GO
2,define the type of @u_state as same as users.u_state, and
3,change ' where u_ID in(' +@uID +')' as ' where u_ID in(''' +@uID +''')'
set @sql = 'update users set u_state =' +cast(@u_state as varchar) + ' where u_ID in(''' +@uID +''')'
@u_state [tinyint],
@uID [varchar](2000)
AS
if @uID = ''
return
exec( 'update users set u_state =' +@u_state + ' where u_ID in(' +@uID +')')
GO