是否可以更改视图中列的数据类型?

Posted

技术标签:

【中文标题】是否可以更改视图中列的数据类型?【英文标题】:Is it possible to change the datatype of a column in a view? 【发布时间】:2012-05-29 12:02:00 【问题描述】:

通常我会运行这样的脚本:

ALTER TABLE [TABLE]
ALTER COLUMN [Column] NVARCHAR(40);

结果是表中的字段被转换为 nvarchar。但是为视图做同样的事情的语法是什么?或者这甚至可能吗?

【问题讨论】:

您不能指定视图输出列的数据类型。您能做的最好的事情就是按照@buckley 的建议 - 使用 CAST 或 CONVERT 在视图定义中强制内联显式数据类型。 【参考方案1】:

当然

CREATE VIEW AView
AS
SELECT CAST(title AS char(50))
FROM titles

因此,请查看 msdn 页面上的 CAST 和 CONVERT 以获取完整信息

【讨论】:

【参考方案2】:

是的..你可以尝试转换功能来做到这一点。

Convert (Desired datatype,column name)

例如Convert(varchar(50),dbo.User_master.User_email) 其中 User_email 以前的类型为 nvarchar(MAX)。

如果要将 nvarchar 数据转换为日期时间,则需要附加参数来转换函数,如

CONVERT(data_type(length),expression,style)

例如。 Convert(Datetime,dbo.User_master.User_DOB,103)

更多信息SQL Server CONVERT() Function

【讨论】:

【参考方案3】:

如果您更新了表中的类型并且视图仍然反映旧类型,则只需运行更改视图而不更改任何内容即可更新类型

【讨论】:

感谢您的贡献,但我认为这个答案不会为讨论增加任何新的或有用的东西。 我不同意,为什么不让原问者决定

以上是关于是否可以更改视图中列的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

视图中列的数据类型

更改数据库中列的数据类型

如何更改 BigQuery 中列的数据类型

更改 SQL Server DB 中列的数据类型时出错 - Java

如何更改 SQL Server 中列的数据类型?

更改表和视图的数据类型