Ai đó có thể vui lòng xác định sự khác biệt về chức năng/hiệu suất, nếu có, giữa SET
và SELECT
trong T-SQL? Dưới những điều kiện nào tôi nên chọn một cái khác?SET so với CHỌN - Sự khác biệt là gì?
UPDATE:
Nhờ tất cả những ai đáp lại. Như một vài người đã chỉ ra, this bài viết của Narayana Vyas Kondreddi có rất nhiều thông tin tốt. Tôi cũng perused mạng sau khi đọc bài báo và thấy this phiên bản ngưng tụ bởi Ryan Farley trong đó cung cấp những điểm nổi bật và nghĩ rằng tôi sẽ chia sẻ chúng:
- SET là tiêu chuẩn ANSI cho giao biến, SELECT thì không.
- SET chỉ có thể gán một biến tại một lần, CHỌN có thể thực hiện nhiều bài tập cùng một lúc.
- Nếu gán từ truy vấn, SET có thể chỉ gán 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. CHỌN sẽ chỉ định một trong các giá trị vào biến và giấu một thực tế rằng nhiều giá trị đã được trả lại (vì vậy bạn muốn có khả năng không bao giờ biết tại sao một cái gì đó đã đi sai ở đâu đó - có xử lý sự cố thú vị mà một)
- Khi gán từ một truy vấn nếu có không có giá trị trả về sau đó SET sẽ assign NULL, nơi CHỌN sẽ không làm nhiệm vụ ở tất cả (vì vậy biến sẽ không được thay đổi từ giá trị của nó trước)
- theo như tốc độ khác nhau - có không có sự khác biệt trực tiếp giữa THIẾT LẬP và CHỌN. Tuy nhiên, khả năng thực hiện nhiều nhiệm vụ của của SELECT là trong một lần chụp sẽ mang lại lợi thế về tốc độ nhẹ hơn SET.
cập nhật tốt; đã sử dụng cả hai nhà khai thác trong khoảng 3 năm nhưng không nhận ra sự khác biệt – whytheq