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

SET so với SELECT khi gán biến?

Trích dẫn, tóm tắt từ bài viết này:

  1. SET là tiêu chuẩn ANSI để gán biến, SELECT thì không.
  2. SET chỉ có thể gán một biến tại một thời điểm, SELECT có thể thực hiện nhiều phép gán cùng một lúc.
  3. Nếu gán từ một truy vấn, SET chỉ có thể gán một giá trị vô hướng. Nếu truy vấn trả về nhiều giá trị / hàng thì SET sẽ phát sinh lỗi. SELECT sẽ chỉ định một trong các giá trị cho biến và ẩn thực tế là nhiều giá trị đã được trả về (vì vậy bạn có thể sẽ không bao giờ biết tại sao có điều gì đó không ổn ở nơi khác - hãy giải đáp thắc mắc đó một cách vui vẻ)
  4. Khi gán từ một truy vấn nếu không có giá trị nào được trả về thì SET sẽ gán NULL, trong đó SELECT sẽ không thực hiện việc gán (vì vậy biến sẽ không bị thay đổi so với giá trị trước đó của nó)
  5. Về sự khác biệt về tốc độ - không có sự khác biệt trực tiếp giữa SET và SELECT. Tuy nhiên, khả năng thực hiện nhiều nhiệm vụ trong một lần chụp của SELECT khiến nó có một chút lợi thế về tốc độ so với SET.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách FOR XML PATH ('') hoạt động khi nối các hàng

  2. Lỗi MSSQL 'Nhà cung cấp cơ bản không thành công khi Mở'

  3. SQL được tối ưu hóa cho cấu trúc cây

  4. Năm cân nhắc hàng đầu khi thiết kế chỉ mục cơ sở dữ liệu trong SQL Server

  5. Tách các giá trị được phân tách trong một cột SQL thành nhiều hàng