Sql 在视图中更改数据类型不是真正的更改吗?

Sql 在视图中更改数据类型不是真正的更改吗?,sql,sql-server,Sql,Sql Server,我有一个数据类型为int的字段Ticket_Number的表。我需要在外部联接中将此字段连接到另一个日志文件表中的KeyData字段,该日志文件表的数据类型为varchar50,有时数据中包含文本,但也包含我需要连接到此表中记录的Ticket Number。我已经尝试在字段上使用convert函数,甚至在已经只提取类似数字的数据的子视图上。然而,即使当我尝试连接到一个已经只提取类似数字的数据的视图时,我仍然会得到一个转换失败的错误。我该怎么办 用于连接条件的VARCHAR字段中可能有字符值。 如

我有一个数据类型为int的字段Ticket_Number的表。我需要在外部联接中将此字段连接到另一个日志文件表中的KeyData字段,该日志文件表的数据类型为varchar50,有时数据中包含文本,但也包含我需要连接到此表中记录的Ticket Number。我已经尝试在字段上使用convert函数,甚至在已经只提取类似数字的数据的子视图上。然而,即使当我尝试连接到一个已经只提取类似数字的数据的视图时,我仍然会得到一个转换失败的错误。我该怎么办

用于连接条件的VARCHAR字段中可能有字符值。 如果您使用的是SQL server 2012版本,请使用TRYCONVERT而不是下面的CONVERT函数

    On Ticket_Number= TRYCONVERT (int,KeyData)
     Where ISNUMERIC (KeyData)=1
或者,您也可以通过在where子句中添加ISNUMERIC函数来消除这些非数值,如下所示

    On Ticket_Number= TRYCONVERT (int,KeyData)
     Where ISNUMERIC (KeyData)=1

您应该从共享视图定义、表结构、示例数据、错误以及预期结果开始。您可以在KeyData=CONVERTvarchar50,票号上使用它