SQL Server 2008 : Bulk Datatype Change

标签 sql sql-server tsql sql-server-2008

我有一个包含许多表的 SQL Server 2008 数据库。我一直在使用现在蹩脚的 datetime数据类型并希望使用新的更好的 datetime2 .在我有日期时间字段的大多数地方,对应的列名是 Timestamp .是否有任何地方可以从 datatime 进行批量更改?至 datetime2 ?

最佳答案

在 Management Studio 中运行它,复制结果并粘贴到新的查询窗口中:

select 'ALTER TABLE ' + OBJECT_NAME(o.object_id) + 
    ' ALTER COLUMN ' + c.name + ' DATETIME2 ' +
    CASE WHEN c.is_nullable = 0 THEN 'NOT NULL' ELSE 'NULL' END 
from sys.objects o
inner join sys.columns c on o.object_id = c.object_id
inner join sys.types t on c.system_type_id = t.system_type_id
where o.type='U'
and c.name = 'Timestamp'
and t.name = 'datetime'
order by OBJECT_NAME(o.object_id)

关于SQL Server 2008 : Bulk Datatype Change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644660/

相关文章:

mysql - 有关帮助从 MySQL 迁移到 MS SQL 的提示

sql - 在具有不同名称的列上连接表但在结果中产生单列

c# - 如何将数据插入SQL Server

mysql - 如何在MySQL中合并具有相似名称的多个表

MySQL 全文搜索 : One-to-many Relationships

sql-server - NULLIF 和 0 转换的 TSQL 问题

sql-server-2008 - 在 DB 或 SSRS 中计算列的最佳方法

c# - 如何从 C# 中准确处理 SQL 的批处理分隔符

sql - 定义范围以覆盖数字序列中的间隙 (T-SQL)

c# - 如何让EF高效调用聚合函数?