Sql 根据条件调用存储过程中的第一个或第二个查询

Sql 根据条件调用存储过程中的第一个或第二个查询,sql,stored-procedures,Sql,Stored Procedures,我有一个这样的存储过程 AS BEGIN SELECT I.IslemNo, S.SahisID, I.MukayyitID, K.BirimKisim, M.SorusturmaNo, S.KimlikNo, S.Ad, S.Soyad FROM [Ifade.MukayyittenSahsa] M INNER JOIN [Ifade.SahislarKimlikTablosu] S ON M.SahisID = S.

我有一个这样的存储过程

AS 
BEGIN
   SELECT 
      I.IslemNo, S.SahisID, I.MukayyitID,
      K.BirimKisim, M.SorusturmaNo, S.KimlikNo, S.Ad, S.Soyad 
   FROM
      [Ifade.MukayyittenSahsa] M 
   INNER JOIN 
      [Ifade.SahislarKimlikTablosu] S ON M.SahisID = S.SahisID
   INNER JOIN
      [Ifade.Islem] I ON M.SahisID = I.SahisID 
   INNER JOIN
      [Ifade.Kullanicilar] K ON I.MukayyitID = K.KullaniciNo 
   WHERE
      M.SorusturmaNo = @SorusturmaNo 
      AND S.KimlikNo = @KimlikNo;
//INSERT STATEMENT
在Winforms端:如果存储过程生成0行,我希望在同一存储过程中执行insert语句

我怎么能做到呢,还是可能?
注意:它将位于winform端的DialogResult选项之后。

您可以使用
@@ROWCOUNT
获取上一条语句中受影响的行数。查看有关的更多信息

在您的情况下,您可以这样做:

SELECT 
  I.IslemNo, S.SahisID, I.MukayyitID,
  K.BirimKisim, M.SorusturmaNo, S.KimlikNo, S.Ad, S.Soyad 
FROM
  [Ifade.MukayyittenSahsa] M 
INNER JOIN 
  [Ifade.SahislarKimlikTablosu] S ON M.SahisID = S.SahisID
INNER JOIN
  [Ifade.Islem] I ON M.SahisID = I.SahisID 
INNER JOIN
  [Ifade.Kullanicilar] K ON I.MukayyitID = K.KullaniciNo 
WHERE
  M.SorusturmaNo = @SorusturmaNo 
  AND S.KimlikNo = @KimlikNo;

IF @@ROWCOUNT > 0
    INSERT abcd

但基本上我希望它将与用户对话框的结果选项选择,将发送一个值完成;如果“确定”参数将加载1个值和大小写,而“EXECQUE Insert语句ELSE DOES”则没有问题,您可以在select语句中添加所需内容,重要的是通过检查
@@ROWCOUNT
确定了解,但我将尝试用select CASE语句找到解决方案。谢谢你的回复