2

場所の説明ではなく属性の説明を使用して、Medication という別のテーブルから情報を取得したいので、内部結合を実行するにはどうすればよいですか。どうすればこれを行うことができますか?

 public static void UpdateLocationDescription( int locationID, string description, SqlConnection connection, SqlTransaction transaction )
    {
        StringBuilder sqlString = new StringBuilder();
        SqlCommand command;

        sqlString.Append( "UPDATE [Location] SET " );
        sqlString.Append( "description = @description " );
        sqlString.Append( "WHERE locationID = @locationID " );
        command = new SqlCommand( sqlString.ToString(), connection );
        if( ( transaction != null ) ) command.Transaction = transaction;

        command.Parameters.Add( "@locationID", SqlDbType.Int ).Value = locationID;
        command.Parameters.Add( "@description", SqlDbType.VarChar ).Value = description;


        int rowsAffected = command.ExecuteNonQuery();

        if( !( rowsAffected == 1 ) )
        {
            throw new Exception( "An error has occurred while updating UpdateMedicationDispenseStatus." );
        }
    }
4

2 に答える 2

0

「FROM」キーワードを使用すると、それを行うことができます。

UPDATE [Medication]

SET [Medication].description = @description

FROM [Medication] INNER JOIN [Location] ON [Medication].LocationID = [Location].LocationID

WHERE ...

Ofcouse 私はあなたの構造や要件を知りません。ただし、SELECT ステートメントを使用して INNER JOIN として記述します。考慮したいフィールドを含む SELECT ステートメントを作成できます。次に、「SELECT [fields]」の部分を「UPDATE [tableyouwantochange] SET [field]=[value]」に置き換えます。

データを取得するには、新しい SELECT ステートメントを使用するだけです。

于 2013-07-29T14:28:17.617 に答える
-1

このような意味ですか?

UPDATE [Location]

SET [Location].description = (SELECT top 1* m.description FROM Medication m WHERE m.LocationID =@LocationId)

WHERE Location.ID =@LocationId
于 2013-07-29T14:53:25.813 に答える