Sql server T-SQL:alterview

Sql server T-SQL:alterview,sql-server,tsql,alter,Sql Server,Tsql,Alter,我有一个视图,其中日期字段为varchar。我需要使用以下代码将其更改为最新时间 CONVERT(DATETIME, MyDates) 这在执行视图时可以很好地工作,但我想使更改永久化。我需要一些语法方面的帮助。到目前为止我有 ALTER VIEW tableName CONVERT(DATETIME, MyDates) 但是它显然不起作用视图仅根据查询从表中获取数据。因此您无法更改视图的数据类型。您必须在表中更改它。因为视图(除非它是具有一些额外特性的物化/索引视图

我有一个视图,其中日期字段为varchar。我需要使用以下代码将其更改为最新时间

    CONVERT(DATETIME, MyDates)
这在执行视图时可以很好地工作,但我想使更改永久化。我需要一些语法方面的帮助。到目前为止我有

    ALTER VIEW tableName
    CONVERT(DATETIME, MyDates)

但是它显然不起作用

视图仅根据查询从表中获取数据。因此您无法更改视图的数据类型。您必须在表中更改它。

因为视图(除非它是具有一些额外特性的物化/索引视图)或多或少只是一个存储的select查询,所以您要做的就是更改select查询并使用该查询更改视图

例如,如果您有视图

CREATE VIEW testview AS 
  SELECT id, value FROM test;
…如果值是一个varchar,并且您希望它作为日期时间反映在视图中,则只需发出

ALTER VIEW testview AS
  SELECT id, CAST(value AS DATETIME) value FROM test; 
…使其在视图中显示为日期时间


.

视图只是一个存储的查询-它本身没有列,除了更改执行的查询外,您不能更改视图…您是在试图更改视图还是在基础表中更改列的数据类型?您能显示视图吗?