如何将视图中row_number生成的ID列从bigint改为int
解决ROW_NUMBER生成列的数据类型转换问题
你可以直接用CAST()或者CONVERT()函数包裹ROW_NUMBER()的结果,就能把默认的bigint类型转换成int类型。
修改后的视图创建代码如下:
CREATE VIEW v_Test AS SELECT CAST(ROW_NUMBER() OVER( ORDER BY [Name] ) AS INT) AS [ID], -- 转换为int类型 [Name] FROM [DB].[dbo].[TestTable]
也可以使用CONVERT()的写法:
CREATE VIEW v_Test AS SELECT CONVERT(INT, ROW_NUMBER() OVER( ORDER BY [Name] )) AS [ID], -- 转换为int类型 [Name] FROM [DB].[dbo].[TestTable]
需要注意:如果TestTable中的行数超过int类型的最大值(2147483647),转换时会触发报错,所以要确保数据量在int的取值范围内再使用该方法。
内容的提问来源于stack exchange,提问作者XSLT-explorer
相关产品推荐
相关产品推荐

