Một cách dài sẽ là tạo trình bao bọc thực hiện điều này - một hàm lấy danh sách các trạng thái và thêm chúng vào bảng cuối cùng sẽ được trả về.
Bạn cũng có thể có bất cứ điều gì công nghệ đang kêu gọi thủ tục này làm ghép của các hồ sơ (tức là có NET nối thêm các thiết lập kết quả của mỗi tiểu bang bạn đang tìm kiếm vào)
Nếu bạn đang sử dụng tốt với đi qua trong một danh sách của các trạng thái cho thông số 'trạng thái' của bạn, bạn có thể tạo truy vấn sql động
CREATE PROCEDURE [dbo].[MyStored]
@state nvarchar(150)
AS
-- @state needs to be pre-formatted in a list for an in-clause
-- i.e. 1,2,10 (if it was a string list, you'd need to do use double single quotes around the items - ''1'',''2'',''10''
DECLARE @SQL nVarChar(5000) = '
SELECT blahblahblah
FROM LotsOfJoins
WHERE StoredState in (' + @state + ')'
exec sp_executeSql @sql
Điều này phù hợp với quy trình đơn giản; mặc dù, có thể mất nhiều thời gian hơn để duy trì nếu cần thay đổi xuống đường.
.
Đây là một CodeProject Article và MS SQL Tips Article mà không một công việc tốt hơn đi sâu vào chi tiết
.
EDIT: Các @state param sẽ cần phải là một nvarchar kể từ khi đi qua của bạn trong một dấu phẩy phân cách danh sách int đánh giá cao
Nguồn
2011-12-29 15:56:00
Bạn có đồng ý với việc @state là danh sách được phân cách bằng dấu phẩy không? (ví dụ: state = '0,1') - giải pháp khác nhau tùy thuộc vào câu trả lời của bạn. –
@Ray K: Tôi không chắc chắn, tôi thích một giải pháp dễ bảo trì hơn. – sharptooth
trùng lặp: http://stackoverflow.com/questions/5292069/union-the-results-of-multiple-stored-procedures – goric