SQL Server: set datetime2 เป็น datetime

Byphunsanit

SQL Server: set datetime2 เป็น datetime

sql server จะแนะนำให้ใช้ datetime2 แทน datetime แต่เพราะว่าตอนนี้มีการใช้ column แบบ datetime2 มีแค่ไม่ถึง 10 column ทำให้การที่เปลี่ยน datetime2 เป็น datetime ดูจะปลอดภัยกว่า upgrade เป็น datetime2
alter_table_set_column_type_datetime2_to_datetime.sql

SELECT
    DB_NAME() AS DatabaseName,
    s.name AS SchemaName,
    t.name AS TableName,
    'ALTER TABLE ' + QUOTENAME(DB_NAME()) + '.' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) +
    ' ALTER COLUMN ' + QUOTENAME(c.name) + ' datetime;' AS alter_sql
FROM
    sys.columns AS c
JOIN
    sys.tables AS t ON c.object_id = t.object_id
JOIN
    sys.schemas AS s ON t.schema_id = s.schema_id
JOIN
    sys.types AS ty ON c.user_type_id = ty.user_type_id
WHERE
    ty.name = 'datetime2';

หลัง copy ข้อความใน alter_sql จะเปลี่ยน datetime2 เป็น datetime ให้อย่างราบรื่น

อ่านเพิ่มเติม

About the author

phunsanit administrator