使用C#创建存储过程

使用C#创建存储过程,c#,stored-procedures,C#,Stored Procedures,我想定义一个具有两个表的存储过程,这些表插入到第一个表中并更新第二个表。第一个表包含PostID和PersonID,第二个表包含PostID和Counter。你能帮我纠正这个吗?我知道这是不对的 com.CommandText = @"CREATE PROCEDURE dbo.Facebook @PostID int,@PerosnalID int, BEGIN INSERT dbo.Like (Post

我想定义一个具有两个表的存储过程,这些表插入到第一个表中并更新第二个表。第一个表包含PostID和PersonID,第二个表包含PostID和Counter。你能帮我纠正这个吗?我知道这是不对的

com.CommandText = @"CREATE PROCEDURE dbo.Facebook @PostID int,@PerosnalID int, 
                   BEGIN 
                         INSERT dbo.Like (PostID) VALUES (@PersonalID), 
                         UPDATE dbo.Counter (Counter) 
                            SET PostID = @value1 
                          WHERE Counter = Sum @PersonalID 
                   END";

让我们开始并修复过程语法:

com.CommandText = "CREATE PROCEDURE dbo.Facebook( @PostID int,@PersonalID int) AS "+
                  " INSERT dbo.[Like] (PostID) VALUES (@PersonalID); " +
                  " UPDATE C SET Counter = (SELECT COUNT(*) FROM dbo.[Like] WHERE PostId = @PersonalID)" +
                  " FROM dbo.Counter AS C " +
                  " WHERE C.PostID = @PersonalID  ";

你的SQL对我来说毫无意义。你有一张名为“Like”的桌子吗?你的UPDATE语句是怎么回事?@t McKeown是的,一个表名为like,另一个表名为Counter。这就像你喜欢facebook上的帖子一样。在一张桌子上有postID和yourID,我想让这张桌子显示我,例如postID=2,PersonID=6523;另一个表保存PostID=2,Counter=4(意味着PostID=2已经被喜欢了4次),我需要一个存储过程来为我执行这个插入和更新。插入第一个表并更新第二个表。@user3158098您能详细说明到底出了什么问题吗?确切的问题是什么还不清楚。在大多数SQL方言中,Like是一个保留字。使用保留字作为表名是一个非常糟糕的主意。每当有人喜欢帖子并更新计数器时,我的第二个表都需要更新(计数器表显示,例如postID=2 counter=7已经被喜欢了7次),但我不知道如何编写这段代码OK,我将修改我的答案。看看这是否有效。。。我很确定我理解你的要求伙计,我现在有一个错误,说必须声明标量变量“@PersonalID”。您的声明拼写错误,您在声明中没有说明,但在查询中拼写正确。我更正了答案。