sql存储过程中更新字段为变量
答案:3 悬赏:40
解决时间 2021-02-13 00:05
- 提问者网友:我稀罕你
- 2021-02-12 08:36
sql存储过程中更新字段为变量
最佳答案
- 二级知识专家网友:佛说妍妍很渣
- 2021-02-12 09:10
@c1 是什么数据类型?
update 只是对表的值进行更改,变量是用在程序块中的临时参数数据、
就好比、select 后面跟的是列的名字、是表的结构中字段、是定义表时已经固定死的、
只能用数据定义语言来修改
存储过程中select @c1 from 表 查出来的是临时列、列的值为你传的参数
select @c1=列名 from 表 是把表中此列的值输出出来、还是对值的操作
又比如:update users set userid=*** set后面虽然跟的列名、但是此操作还是对userid的值的修改
一张健全的二维表中、字段的名称等可以用数据定义语言、但是字段的值只能用数据操纵语言
你的过程中、如果想修改某列的值、列名一定得是原表有的,
比如:你原表有一个 usertime 字段、类型为datetime
update Users set usertime=getdate() where Uid=@u and UserId=@ui and usertime=@c1
那么执行时符合你输入的@c1值的usertimeid就改为了getdate()
反正这个概念很模糊、变量是根据需要变动使用的数值、不能用来定义表的字段
update 只是对表的值进行更改,变量是用在程序块中的临时参数数据、
就好比、select 后面跟的是列的名字、是表的结构中字段、是定义表时已经固定死的、
只能用数据定义语言来修改
存储过程中select @c1 from 表 查出来的是临时列、列的值为你传的参数
select @c1=列名 from 表 是把表中此列的值输出出来、还是对值的操作
又比如:update users set userid=*** set后面虽然跟的列名、但是此操作还是对userid的值的修改
一张健全的二维表中、字段的名称等可以用数据定义语言、但是字段的值只能用数据操纵语言
你的过程中、如果想修改某列的值、列名一定得是原表有的,
比如:你原表有一个 usertime 字段、类型为datetime
update Users set usertime=getdate() where Uid=@u and UserId=@ui and usertime=@c1
那么执行时符合你输入的@c1值的usertimeid就改为了getdate()
反正这个概念很模糊、变量是根据需要变动使用的数值、不能用来定义表的字段
全部回答
- 1楼网友:星痕之殇
- 2021-02-12 10:35
办法1:把存储过程得出来的结果存入一个表,再对表进行delete,条件是一个字段为0。
办法2:改进存储过程,如原来的存储过程是
create proc proc
as
select 字段1,字段2,... from table
where 条件
改成:
create proc proc
as
select * from
(
select 字段1,字段2,... from table
where 条件
) a where 字段1 <> 0
- 2楼网友:嗷呜我不好爱
- 2021-02-12 09:29
oh so sorry,i've no idea.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯