Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cập nhật nếu tên tồn tại khác chèn - trong SQL Server

Bạn nên

  • sử dụng tham số trong truy vấn của bạn - LUÔN LUÔN! - không ngoại lệ
  • tạo một truy vấn duy nhất để xử lý IF EXISTS() phần trên máy chủ
  • sử dụng các phương pháp hay nhất được chấp nhận chung của ADO.NET để đưa mọi thứ vào using() {....} khối, v.v.

Hãy thử mã này:

public void SaveData(string filename, string jsonobject)
{
    // define connection string and query
    string connectionString = "Data Source=.;Initial Catalog=;Integrated Security=True";
    string query = @"IF EXISTS(SELECT * FROM dbo.T_Pages WHERE pagename = @pagename)
                        UPDATE dbo.T_Pages 
                        SET pageinfo = @PageInfo
                        WHERE pagename = @pagename
                    ELSE
                        INSERT INTO dbo.T_Pages(PageName, PageInfo) VALUES(@PageName, @PageInfo);";

    // create connection and command in "using" blocks
    using (SqlConnection conn = new SqlConnection(connectionString))
    using (SqlCommand cmd = new SqlCommand(query, conn))
    {
        // define the parameters - not sure just how large those 
        // string lengths need to be - use whatever is defined in the
        // database table here!
        cmd.Parameters.Add("@PageName", SqlDbType.VarChar, 100).Value = filename;
        cmd.Parameters.Add("@PageInfo", SqlDbType.VarChar, 200).Value = jsonobject;

        // open connection, execute query, close connection
        conn.Open();
        int rowsAffected = cmd.ExecuteNonQuery();
        conn.Close();
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khắc phục sự cố Máy chủ SQL Luôn ở trên Nhóm khả dụng

  2. Dấu thời gian Chèn và Cập nhật hàng trong SQL Server 2008

  3. datetime so với smalldatetime trong SQL Server:Sự khác biệt là gì?

  4. Cách tốt để cắt tất cả các ký tự khoảng trắng khỏi một chuỗi trong T-SQL mà không có UDF và không có CLR là gì?

  5. Cách bật tất cả các ràng buộc kiểm tra trong cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 88