c# 创建多表通用的存储过程



    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

那你把表名当变量传进来呀