是否可以更改视图中列的数据类型?
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】:如果您更新了表中的类型并且视图仍然反映旧类型,则只需运行更改视图而不更改任何内容即可更新类型
【讨论】:
感谢您的贡献,但我认为这个答案不会为讨论增加任何新的或有用的东西。 我不同意,为什么不让原问者决定以上是关于是否可以更改视图中列的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章