实现表名通过C#传递,执行sql语句时将表名传递进来执行


    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#来调用执行存储过程。