SQL での SP の構文を教えてください。
これが私のコードです:
CREATE PROCEDURE usp_GetValue
(
@ID VARCHAR(10),
@Description VARCHAR(10)
)
AS
BEGIN
return @ID + @Description
END
CREATE PROCEDURE usp_InsertValue
(
@ID VARCHAR(10),
@FirstName VARCHAR(50),
@LastName VARCHAR(50),
@Description VARCHAR(10),
@Comment VARCHAR(max)
)
AS
BEGIN
Declare @v_Value VARCHAR(15)
Set @v_Value = usp_GetValue(@ID, @Description)
END
usp_InsertValue SP で、変数を宣言して設定したいと考えています。変数が宣言されたら、パラメーターを使用して別の SP を呼び出して、宣言された変数の値を設定します。
構文がわかりません。助けてもらえますか?
アップデート
関数を使用して上記のコードを更新しました。usp_GetValue 関数から @v_Value を設定するにはどうすればよいですか。
このエラーが発生しています:
「usp_GetValue」は認識される組み込み関数名ではありません。
更新2
ここに私の完全なコードがあります:
CREATE PROCEDURE usp_PersonCategoryLookupTesting
(
@ID VARCHAR(10),
@Description VARCHAR(10),
@res VARCHAR(10) OUTPUT
)
AS
BEGIN
return @ID + @Description
END
CREATE PROCEDURE usp_InsertPersonTesting
(
@IDTest VARCHAR(10),
@FirstName VARCHAR(50),
@LastName VARCHAR(50),
@AddressLine1 VARCHAR(50),
@AddressLine2 VARCHAR(50),
@AddressLine3 VARCHAR(50),
@MobilePhone VARCHAR(20),
@HomePhone VARCHAR(20),
@Description VARCHAR(10),
@Comment VARCHAR(max)
)
AS
BEGIN
Declare @PersonCategory VARCHAR(15)
EXEC usp_PersonCategoryLookupTest @ID, @Description, @PersonCategory
INSERT INTO Person(FirstName, LastName, AddressLine1, AddressLine2, AddressLine3, MobilePhone, HomePhone, DateModified, PersonCategory, Comment)
VALUES (@FirstName, @LastName, @AddressLine1, @AddressLine2, @AddressLine3, @MobilePhone, @HomePhone, GETDATE (), @PersonCategory, @Comment)
END
SQL コードを呼び出しているアプリケーションで次のエラーが発生します。
varchar 値 '123Client' をデータ型 int に変換するときに変換に失敗しました。
@IDTest と @Description に値「123」と「Client」を使用しています。