【发布时间】:2009-09-18 20:48:51
【问题描述】:
我有一个充满 datetime2 列的数据库,需要将其移至 SQL 2005 数据库。所以,我需要将所有这些 datetime2(7) 列转换为 datetime。
我该怎么做?
现在我已经设法为所有具有 datetime2 数据类型的列选择表名和列名,如下所示:
SELECT t.name, c.name, i.DATA_TYPE
FROM sys.tables AS t
JOIN sys.columns c ON t.object_id = c.object_id
JOIN information_schema.columns i ON i.TABLE_NAME = t.name AND i.COLUMN_NAME = c.name
WHERE i.data_type = 'datetime2'
我只是不知道该怎么做。
【问题讨论】:
-
既然所有信息都可以从 information_schema.columns 获得,为什么还要加入三个表?
-
@van,@David。您可能需要检查 sys.columns 中的 is_nullable 列以验证 ALTER COLUMN 中是否需要 NOT NULL
标签: sql datetime alert datetime2