-1

Contacts列を持つ顧客のために保存しているテーブルがあります:

  • 住所1
  • 住所2
  • 都市ID
  • 従業員 ID (外部キー)
  • ModifiedDate (計算済み、DateTime)

私は ASP.NET 4.0 を使用しており、ASP.NET ウィザードを 3 つのステップで使用した形式で使用しています。問題はほとんどありません。

  1. FK があるEmpIDテーブルに挿入するにはどうすればよいですか。dbo.ContactsEmpID
  2. 保管方法はModifiedDate?Time 値を追加するための sqlparameter は何ですか?
4

2 に答える 2

2

ModifiedDate最新の状態に保つには、基本的に2つの選択肢があります。

  1. その列に制約を定義してDEFAULT、行を新たに挿入したときに現在の日付/時刻を取得し、その行に対するすべての更新操作AFTER UPDATEの後に更新するトリガーを作成しますModifiedDate

  2. データベースへのすべての保存操作の前に、クライアントアプリケーションでを設定しModifiedDateます

更新:トリガーを作成する場合は、次のAFTER UPDATEようなコードを使用します。

CREATE TRIGGER trg_UpdateModifiedDate
ON dbo.YourTableHere
AFTER UPDATE
AS
     UPDATE dbo.YourTableHere
     SET ModifiedDate = GETDATE()
     WHERE AddressID IN (SELECT AddressID FROM Inserted)

YourTableHereここでは、テーブルにある種の主キーがあると想定しています。これは、ID各単一行を一意かつ明確に識別するような列です。その行に基づいてModifiedDate、特定のSQLステートメントによって更新されたすべての行を更新できます。Insertedは、トリガーコード本体内で使用できる疑似テーブルであり、このトリガーを起動する原因となった操作によって変更されたすべての行が含まれます(UPDATE上のステートメントの影響を受けるすべての行YourTableHere

トリガーの詳細については、こちらをご覧ください。

更新#2:ModifiedDate列が実際にSQL Serverテーブルレベルで計算されている場合、直接更新することはできません。何から計算されているかを調べてから、その列を変更する必要があります(可能な場合)。

何から計算されているかを確認するには、SQLServerデータベースで次のクエリを実行します。

SELECT 
    c.name, c.is_computed, c.definition
FROM 
    sys.computed_columns c
WHERE 
    object_id = OBJECT_ID('dbo.Contacts')
    AND c.Name = 'ModifiedDate'
于 2012-07-28T08:10:07.713 に答える
-1

次のように日付を変更する場合は、単純なUPDATEステートメントを使用できます。

 update tabelname set modifieddate='@Prameterdate' where empid='01'
于 2012-07-28T08:13:12.627 に答える