こんにちは、テーブル Address にリンクされたテーブル Persons へのストアド プロシージャを、次のように 3 つの外部キーで作成しました。
-MaterialAddressID -HomeAddressID -PostalAddressID
これは、私が作成したストアド プロシージャです。
-- =============================================
-- Author: *******************
-- Create date: 11.07.2013
-- Description: Gets User Personal Details
-- =============================================
ALTER PROCEDURE [eConnect].[GetUserPersonalDetails]
@personId int
AS
BEGIN
SELECT Persons.PersonalID,
Persons.FirstName ,
Persons.MiddleName ,
Persons.LastName ,
Persons.DateOfBirth,
Persons.CityOfBirth ,
Persons.BSN ,
Persons.SecondaryEmail ,
Persons.HomePhone ,
Persons.WorkPhone ,
Persons.MobilePhone,
MaterialAddress.StreetName ,
MaterialAddress.PostCode ,
MaterialAddress.City ,
HomeAddress.StreetName ,
HomeAddress.PostCode ,
HomeAddress.City ,
PostalAddress.StreetName ,
PostalAddress.PostCode ,
PostalAddress.City
FROM Sync_Persons as Persons
JOIN Sync_Addresses as MaterialAddress ON Persons.MaterialAddressID = MaterialAddress.AddressID
JOIN Sync_Addresses as HomeAddress ON Persons.HomeAddressID = HomeAddress.AddressID
JOIN Sync_Addresses as PostalAddress ON Persons.PostalAddressId = PostalAddress.AddressID
WHERE Persons.PersonalID = @personId
END
これを実行しようとすると、次のエラーが発生します。
メッセージ 245、レベル 16、状態 1、プロシージャ GetUserPersonalDetails、行 11 varchar 値 'I-024800' をデータ型 int に変換するときに変換に失敗しました。
この場合の 11 行目は次のとおりです。 -- 説明: ユーザーの個人情報を取得します。
コメントでエラーが発生するのはなぜですか?どうすれば修正できますか?