【问题标题】: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 在视图定义中强制内联显式数据类型。

标签: database sql-server-2008 tsql view sqldatatypes


【解决方案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】:

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

      【讨论】:

      • 感谢您的贡献,但我认为这个答案不会为讨论增加任何新的或有用的东西。
      • 我不同意,为什么不让原问者决定
      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多