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

Thực thi một thủ tục được lưu trữ trong một thủ tục được lưu trữ khác trong máy chủ SQL

Nếu bạn chỉ muốn thực hiện một số thao tác cụ thể với SP thứ hai của mình và không yêu cầu các giá trị trở lại từ SP thì chỉ cần thực hiện:

Exec secondSPName  @anyparams

Ngược lại, nếu bạn cần các giá trị được trả về bởi SP thứ hai bên trong SP đầu tiên, thì hãy tạo một biến bảng tạm thời với số cột bằng nhau và có cùng định nghĩa về cột trả về theo SP thứ hai. Sau đó, bạn có thể nhận các giá trị này trong SP đầu tiên như:

Insert into @tep_table
Exec secondSPName @anyparams

Cập nhật:

Để chuyển tham số cho sp thứ hai, hãy thực hiện như sau:

Declare @id ID_Column_datatype 
Set @id=(Select id from table_1 Where yourconditions)

Exec secondSPName @id

Cập nhật 2:

Giả sử sp thứ hai của bạn trả về IdName nơi loại idintname là của varchar(64) loại.

Bây giờ, nếu bạn muốn chọn các giá trị này trong sp đầu tiên thì hãy tạo một bảng table tạm thời biến và chèn các giá trị vào nó:

Declare @tep_table table
(
  Id int,
  Name varchar(64)
)
Insert into @tep_table
Exec secondSP

Select * From @tep_table

Điều này sẽ trả lại cho bạn các giá trị được trả về bởi SP thứ hai.

Hy vọng, điều này sẽ xóa tan mọi nghi ngờ của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quét ngược chỉ mục SQL Server:Hiểu, điều chỉnh

  2. Cách tắt CDC trên tập hợp bảng HOẶC tắt trên tất cả bảng trong cơ sở dữ liệu trong SQL Server - Hướng dẫn sử dụng SQL Server

  3. 7 cách trả về tất cả các bảng có khóa ngoại trong SQL Server

  4. Hướng dẫn:Thiết lập tính khả dụng cao của SQL Server

  5. Ví dụ về SIN () trong SQL Server