【问题标题】:Add message in stored procedure that the value exists already在存储过程中添加值已存在的消息
【发布时间】:2018-06-27 08:18:08
【问题描述】:

创建过程 dbo.InsertData(@Sifra VARCHAR(50), @Opis VARCHAR(50), @Status BIT)

开始

提交交易

声明@ErrorMessage NVARCHAR(MAX)

如果存在(SELECT * FROM dbo.OpstiniTBL WHERE Sifra = @Sifra AND Opis = @Opis AND St​​atus = @Status)

  ROLLBACK TRANSACTION

  RAISERROR ('Шифрата веќе постои', 16, 1)

            RETURN 1

否则

开始交易

  INSERT INTO dbo.OpstiniTBL(Sifra, Opis, Status)

  VALUES(@Sifra, @Opis, @Status)

结束

【问题讨论】:

标签: mysql


【解决方案1】:
CREATE PROCEDURE dbo.InsertData(@Sifra VARCHAR(50), @Opis VARCHAR(50), @Status BIT)

AS BEGIN

BEGIN TRANSACTION

DECLARE @ErrorMessage NVARCHAR(MAX)

IF EXISTS(SELECT * FROM dbo.OpstiniTBL WHERE Sifra = @Sifra AND Opis = @Opis AND Status = @Status)
BEGIN
  ROLLBACK TRANSACTION
set @ErrorMessage='value exists'

END
ELSE
BEGIN
  INSERT INTO dbo.OpstiniTBL(Sifra, Opis, Status)

  VALUES(@Sifra, @Opis, @Status)
END


  COMMIT TRANSACTION
END

【讨论】:

  • 哦,非常感谢,这行得通,我使用的是 RAISERROR,但我不太了解它所以.. 谢谢增益。
【解决方案2】:

此处正确使用存储过程名称

   SqlCommand comm = new SqlCommand("YourStoredProcedure_Name", conn);

【讨论】:

    【解决方案3】:

    //这里可能出了什么问题?

    clConnection clConn = new clConnection(); SqlConnection conn = clConn.openConnection();

            SqlCommand comm = new SqlCommand("InsertData", conn);
            comm.Connection = conn;
    
            comm.CommandType = CommandType.StoredProcedure;
    
            comm.Parameters.Add("@Sifra", SqlDbType.NVarChar).Value = OObject.Sifra;
            comm.Parameters.Add("@Opis", SqlDbType.NVarChar).Value = OObject.Opis;
            comm.Parameters.Add("@Status", SqlDbType.Bit).Value = OObject.Status;
    
            try
            {
                comm.ExecuteNonQuery();
                check = true;
    
            }
            catch (SqlException sqlexc)
            {
                // handle SQL exception
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 2012-09-03
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 2010-12-06
      • 2012-03-08
      相关资源
      最近更新 更多