SQLSERVER里怎么修改动态修改当天值??
我要修改每天的值,而在数据库里的字段是day1,day2,day3,day4..................
我用下面的方法,值不会修改
请各位大虾帮忙
declare @days char(4)
set @days=rtrim ('day' + LTRIM(str (day(getdate()) ) ))
update pt_prjmng set @days='100'
where componentID='1' and projectID='2'
and processID='1' and judge='0'
select * from pt_prjmng
问题点数:100、回复次数:9Top
1 楼sportdog(会编程的流氓狗)回复于 2004-04-03 09:57:33 得分 0
update 有问题吧Top
2 楼baikaishui_0825(baikaishui)回复于 2004-04-03 09:59:22 得分 0
update到底有甚么问题??
我去掉下面的where子句
还是不能修改Top
3 楼zjsen(位高权重责任轻,钱多事少离家近,睡觉睡到自然醒, 数钱数到手抽筋. )回复于 2004-04-03 09:59:45 得分 0
CONVERT(rtrim ('day' + LTRIM(str (day(getdate()) ) )) as datetime)
Top
4 楼baikaishui_0825(baikaishui)回复于 2004-04-03 10:02:29 得分 0
re zjsen(星愿):
伺服器: 訊息 170,層級 15,狀態 1,行 1
行 1: 'day' 附近的語法不正確。Top
5 楼zjsen(位高权重责任轻,钱多事少离家近,睡觉睡到自然醒, 数钱数到手抽筋. )回复于 2004-04-03 10:07:22 得分 0
UPDATE 表 SET 字段=Convert(@days as datetime)Top
6 楼baikaishui_0825(baikaishui)回复于 2004-04-03 11:03:05 得分 0
那字段名不能用变量代替吗??
有甚么办法可以解决????Top
7 楼sportdog(会编程的流氓狗)回复于 2004-04-03 11:45:08 得分 50
declare @days char(4)
set @days=rtrim ('day' + LTRIM(str (day(getdate()) ) ))
print @days
declare
@statement NVARCHAR(500)
select @statement = 'update test set '
select @statement = @statement + @days
select @statement = @statement + '=' + ' ''200'' where id = ''1'' '
print @statement
EXEC SP_EXECUTESQL @STATEMENT
Top
8 楼sportdog(会编程的流氓狗)回复于 2004-04-03 11:45:52 得分 0
测试通过了,给分吧!Top
9 楼anbeel(吃不到葡萄,也不说葡萄酸)回复于 2004-04-03 11:49:56 得分 50
如果是存储过程的话:
declare @tmp nvarchar(200)
set @tmp=N'update pt_prjmng set '+@days+'='+''''+'100'+''''+'where componentID='+''''+'1'+''''+' and projectID='+''''+'2'+''''+' and processID='+''''+'1'+''''+' and judge='+''''+'0'+''''
exec(@tmp)Top




