CREATE PROCEDURE UPK @StatusID INT, @Time VARCHAR ( 50 ), @qid bigint AS UPDATE RealData20220615
SET StatusID = @StatusID
WHERE
qid = @qid
AND Time BETWEEN CONVERT ( VARCHAR,@Time, 120 ) + '.000'
AND CONVERT ( VARCHAR,@Time, 120 ) + '.999'
创建存储过程,只能执行RealData20220615表的数据,在20220616表中也需要有数据执行更新,那就需要重复再次创建存储过程,想实现创建存储过程多表可以通用实现更新。
CREATE PROCEDURE UPK
@StatusID INT,
@Time VARCHAR ( 50 ),
@qid bigint,
@tablename nvarchar(200)
AS
declare @sql nvarchar(max)
declare @time1 varchar(30)=convert(varchar(10),@time,120)
declare @time2 varchar(30)=convert(varchar(10),@time,120)+' 23:59:59.997'
set @sql= 'UPDATE '+@tablename+'
SET StatusID = '+left(@StatusID,10)+'
WHERE
qid = '+left(@qid,20)+'
AND Time BETWEEN '''+@time2+'''
AND '''+@time2+''''
--print @sql 用于调试
exec sp_executesql @sql
go
那你把表名当变量传进来呀