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

SQL Server 2005:Gọi một thủ tục được lưu trữ từ mệnh đề WHERE

Điều này đạt được trước tiên bằng cách thực hiện thủ tục được lưu trữ, ghi lại kết quả đầu ra vào bảng #temp hoặc biến @tabel, sau đó chạy truy vấn của bạn đối với bảng. Một cái gì đó như thế này:

declare @droits_table (val ,... );
insert into @droits_table
exec up_droits(param, param);
SELECT distinct top 10 i.x, d.droit FROM v_droit d, v_info i WHERE d.nomdroit='yy' AND i.id<>2 AND (select val from @droits) <>3

Tất nhiên điều này sẽ không hiệu quả với bạn vì up_droits cần các tham số i.x và d.droit từ truy vấn. Điều này chỉ ra rằng thủ tục được lưu trữ của bạn có thể phải là một dạng xem hoặc hàm có giá trị bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Server 2008 MERGE - cách tốt nhất để có được số lượng

  2. SQL:XÓA dữ liệu khỏi bảng tự tham chiếu theo thứ tự cụ thể

  3. Tại sao không sử dụng varchar (max)?

  4. Không thể tìm thấy Assembly 'Microsoft.SqlServer.Types' phiên bản 10 trở lên

  5. các thủ tục được lưu trữ với sqlAlchemy