CREATE PROCEDURE UPKJ90Detail @StatusID INT, @IOTime VARCHAR ( 50 ), @UniqueId bigint, @DataFlag VARCHAR ( 50 ) AS UPDATE DetailRealData{0}
SET DataFlag = @DataFlag,
StatusID = @StatusID
WHERE
UniqueId = @UniqueId
AND IOTime BETWEEN CONVERT ( VARCHAR,@IOTime, 120 ) + '.000'
AND CONVERT ( VARCHAR,@IOTime, 120 ) + '.999'
上面sql语句是写在txt文本里,读取语句创建存储过程。DetailRealData{0} 表每次都不一样,想实现表名通过C#传递,执行sql语句时将表名传递进来执行,语句写在txt文本中,怎样写呢?
增加判断,如果UPKJ90Detail 存在不创建,不存在则执行创建存储过程,都要在读取txt中的语句
你既然都用到C#了,那还创建什么存储过程
直接声明一个事务,然后直接执行sql不香吗
string sql = txt读取的内存
sql = sql.Replace("DetailRealData{0}","你想要替换的表名");
晕,你这种是写在txt里的,那你直接用c#的替换掉不就可以了么?还以为是说你要先写一个存储过程,然后调用时传递表名过去当参数呢,你这种只要用Replace替换就好了呀
存储过程是创建在数据库中编译好的程序,不是说你把sql写在txt里面就叫存储过程了。
要么C#直接执行update语句;要么创建存储过程,C#来调用执行存储过程。