CREATE PROCEDURE dbo.Sp_SetTF -----将某表@TableName中的主键是@KeyValue的记录的@Fild字段值做真假变换
@TableName VARCHAR(255), ---表名
@Fild VARCHAR(255), ---要改变的字段名
@KeyId VARCHAR(255), ---表的主键名
@KeyValue VARCHAR(255) ----逐渐值
ASDECLARE @Sql varchar(8000)
DECLARE @Sql1 varchar(8000)
DECLARE @TF varchar(255)set @Sql1=' select '+@TF+'=' +@Fild+' from '+@TableName +' where '+'['+@KeyId+']'+'='+@KeyValueexec (@Sql1)IF @TF!=null
begin
IF @TF='1'
begin
SET @TF='0'
end
if @TF='0'
begin
SET @TF='1'
end
SET @Sql='UPDATE '+@TableName+' SET '+'['+@Fild+']'+'='+@TF+' where '+''+@KeyId+'='+@KeyValueEXEC (@Sql)
end
GO
其中 @TF总是null 不知道问题出在哪里
@TableName VARCHAR(255), ---表名
@Fild VARCHAR(255), ---要改变的字段名
@KeyId VARCHAR(255), ---表的主键名
@KeyValue VARCHAR(255) ----逐渐值
ASDECLARE @Sql varchar(8000)
DECLARE @Sql1 varchar(8000)
DECLARE @TF varchar(255)set @Sql1=' select '+@TF+'=' +@Fild+' from '+@TableName +' where '+'['+@KeyId+']'+'='+@KeyValueexec (@Sql1)IF @TF!=null
begin
IF @TF='1'
begin
SET @TF='0'
end
if @TF='0'
begin
SET @TF='1'
end
SET @Sql='UPDATE '+@TableName+' SET '+'['+@Fild+']'+'='+@TF+' where '+''+@KeyId+'='+@KeyValueEXEC (@Sql)
end
GO
其中 @TF总是null 不知道问题出在哪里
解决方案 »
- 根据条件更新的SQL语句 请大虾帮忙
- SQLSERVER 2005安装后,修改机器名字导致的问题,紧急。
- 如何用触发器记录删除了哪些记录?并且排除掉修改的...
- 存储过程活动事务
- 多个统计查询的合并(连接?)问题
- 求一个SQL语句 ...
- SQL Server 桌面右下角的服务管理器是一个白圈
- 如何从数据库写一张表到数据包,并从数据包中读出这张表?急!
- 请教一个基础问题,UP者有分!!!
- 求integer->char(2)类型转化的最快方法
- 请教一个问题,大家帮忙哦`
- 我遇到一个在SQL2005中的问题:"事务中,不能存在多个使用此游标类型的记录集.......................",SQL2000是好的!
@TableName VARCHAR(255), ---表名
@Fild VARCHAR(255), ---要改变的字段名
@KeyId VARCHAR(255), ---表的主键名
@KeyValue VARCHAR(255) ----逐渐值
ASDECLARE @Sql varchar(8000)
DECLARE @Sql1 nvarchar(4000)
DECLARE @TF varchar(255)set @Sql1=' select @TF=['+@Fild+'] from ['+@TableName +'] where ['+@KeyId+']='+@KeyValue
exec sp_executesql @Sql1, N'@TF varchar(255) output', @TF outputIF @TF is not null
begin
if @TF='1'
SET @TF='0'
else if @TF='0'
SET @TF='1'
end SET @Sql='UPDATE ['+@TableName+'] SET ['+@Fild+']='+@TF+' where ['+@KeyId+']='+@KeyValue
EXEC (@Sql)
end
GO
set @Sql1=' Update ' +@TableName + ' set ' + @Fild + ' = case ' + @Fild + ' When 0 Then 1 When 1 Then 0 Else ' + @Fild + ' End'