2009-07-26 67 views
7

Tôi có một thủ tục được lưu trữ chèn có nhiều tham số - 2 trong số đó là @FirstName, @LastName. Tôi cũng có một thủ tục được lưu trữ cập nhật có nhiều tham số - 2 trong số đó là @FirstName, @LastName.Làm thế nào để gọi thủ tục lưu sẵn từ một thủ tục lưu sẵn khác?

Điều tôi muốn làm là, từ bên trong SP chèn, khi hoàn thành, hãy gọi SP cập nhật và gửi đến @FirstName, @LastName.

Tôi không biết cú pháp đúng để làm điều đó; Tôi đã thử:

exec LandData_Update @FirstName, @LastName 

Nhưng tôi nghĩ là sai.

Ai đó có thể cho tôi biết cách viết cuộc gọi này không?

Và nếu tôi sẽ gọi sp cập nhật có tên param khác nhau? Chẳng hạn như @MyFirstName, @MyLastName? Tôi có viết nó như thế này: EXECUTE LandData_Update @[email protected], @[email protected]?

Trả lời

12

Điều gì khiến bạn nghĩ rằng điều đó sai?

CREATE PROCEDURE MyInsertSP 
    @FirstName varchar(255), 
    @LastName varchar(255) 
AS 
BEGIN 
    INSERT INTO Table VALUES('Some Value') 

    EXECUTE LandData_Update @FirstName, @LastName 
END 

Bạn gặp lỗi hay gì đó?

EDIT: Không quan trọng tên của biến là gì, nhưng để làm những gì bạn muốn, bạn có thể khai báo hai biến mới.

DECLARE @MyFirstName varchar(255) 
DECLARE @MyLastName varchar(255) 

SET @MyFirstName = @FirstName 
SET @MyLastName = @LastName 

Và sau đó sử dụng các biến mới. Nhưng một lần nữa, các thủ tục lưu trữ không quan tâm những gì các biến được gọi.

+0

và nếu tôi sẽ gọi sp cập nhật có tên param khác nhau? chẳng hạn như @MyFirstName, @MyLastName? sẽ viết nó như thế: EXECUTE LandData_Update @ MyFirstName = @ FirstName, @ MyLastName = @ LastName ?? –

+0

Có, điều đó sẽ hoạt động tốt http://msdn.microsoft.com/en-us/library/ms188332 (SQL.90).aspx – ZippyV

Các vấn đề liên quan