0

こんにちは、テーブル 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 行目は次のとおりです。 -- 説明: ユーザーの個人情報を取得します。

コメントでエラーが発生するのはなぜですか?どうすれば修正できますか?

4

1 に答える 1