改变由于合并而导致的视图列的精度

时间:2018-10-26 15:39:12

标签: sql-server ssms alter sql-view

我在线上找到了几篇有关更改存储过程列的文章,以及几篇有关更改视图的文章-其中有几篇是https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-view-transact-sql?view=sql-server-2017https://docs.microsoft.com/en-us/sql/relational-databases/tables/modify-columns-database-engine?view=sql-server-2017。促使整个查询的原因是我们的版本控制软件标记了字段特征的更改。过去是(30,15),但现在是(28,13) 原始

''' Mapped on view Field: ViewName.Function<br/>
''' View field characteristics (type, precision, scale, length): Decimal, 30, 15, 0</remarks>

现在是:

''' View field characteristics (type, precision, scale, length): Decimal, 28, 13, 0</remarks>

有些事情告诉我,必须更改基础视图/函数才能输出(30,15),尽管据我所知,多年来这种视图一直没有改变。当前给ViewName.Function评估为DECIMAL(12,2)。附带说明一下,我在理解SSMS如何将DECIMAL(12,2)视为(28,13)时遇到了一些挑战。当前,当我转到SSMS>数据库名称>视图> dbo.ViewName>列> AliasName>右键单击>属性>数字精度:28,数字比例:13.另外,当我右键单击dbo.ViewName>设计时,该列包含具有(28,13)精度的合并函数。当我右键单击该合并函数并转到属性时,它仅显示视图的常规属性。 无论如何,我需要找到一种方法来使其恢复到原始特征。希望我的查询有意义。如果需要共享其他信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

@AaronBertrand提供了答案。我的最终代码是这样的:

SELECT AliasName = CONVERT(DECIMAL(30,15), [the COALESCE function, etc.]). 

谢谢你,先生!