2010年に訪問したすべての人のために、日付の年の部分にyyyy-mm-ddの形式で保存された日付に10年を追加する必要があります。以下は試したいクエリですが、使用方法がわかりませんSQLServerのロールバック機能はまだです。Visityearはvarcharデータ型です。
update myTable
set admitdate=dateadd(yyyy,10,admitdate)
where visitYear='2010'
2010年に訪問したすべての人のために、日付の年の部分にyyyy-mm-ddの形式で保存された日付に10年を追加する必要があります。以下は試したいクエリですが、使用方法がわかりませんSQLServerのロールバック機能はまだです。Visityearはvarcharデータ型です。
update myTable
set admitdate=dateadd(yyyy,10,admitdate)
where visitYear='2010'
SQL Server 2008では、すべてのクエリは暗黙的にコミットされるトランザクションの一部です。dateadd関数を使用しても大丈夫だと思いますが、見た目は正しいと思います。したがって、ロールバックを許可するように変更するには、次のようにすることができます-いつ/なぜロールバックするかはわかりませんが、そのロジックを追加する必要があります。
BEGIN TRANSACTION addDateYears
update myTable
set admitdate=dateadd(yyyy,10,admitdate)
where visitYear='2010'
/* IF SOMETHING ROLLBACK TRANSACTION addDateYears */
COMMIT TRANSACTION addDateYears
あなたがあなたのテーブルでそれをしたいなら:
BEGIN TRANSACTION
UPDATE dbo.myTable
SET admitdate = DATEADD(YEAR, 10, admitdate)
WHERE visitYear = '2010'
SELECT visityear, admitdate
FROM dbo.myTable
WHERE visitYear = '2010'
ROLLBACK TRANSACTION
もちろん、実際に更新を適用する場合は、 ...COMMIT
の代わりに使用してください。ROLLBACK