Có một truy vấn CHỌN phức tạp, từ đó tôi muốn chèn tất cả các hàng vào một biến bảng, nhưng T-SQL không cho phép nó.
Dọc theo cùng một dòng, bạn không thể sử dụng biến bảng với các truy vấn SELECT INTO hoặc INSERT EXEC. http://odetocode.com/Articles/365.aspx
Ví dụ ngắn:
declare @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
)
SELECT name, location
INTO @userData
FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30
Dữ liệu trong biến bảng sau đó sẽ được sử dụng để chèn / cập nhật lại vào các bảng khác nhau (chủ yếu là sao chép cùng một dữ liệu với các cập nhật nhỏ). Mục tiêu của việc này chỉ đơn giản là làm cho tập lệnh dễ đọc hơn một chút và dễ dàng tùy chỉnh hơn là thực hiện SELECT INTO
trực tiếp vào các bảng bên phải. Hiệu suất không phải là một vấn đề, vì rowcount
nó khá nhỏ và nó chỉ chạy thủ công khi cần thiết.
... Hoặc chỉ cho tôi biết nếu tôi làm sai tất cả.