首页 > 解决方案 > 将常量值作为视图列返回是一种好习惯吗?

问题描述

我们的存储过程中使用了设备类型字符串常量,如下所示

select * from Device.BvDetails where deviceType='bv'
select * from Device.UcbDetails where deviceType='ucb'

我想从任何地方删除这种硬编码,但我有一个限制,我不能拥有设备类型的静态数据库表,所以我想出了解决方案来获得这样的视图

CREATE VIEW Machine.DeviceType
AS
SELECT 
       'bv'  AS Bv,
       'ucb' AS Ucb

并像这样使用它

Declare @bvDeviceType varchar(10) = (select Bv from Machine.DeviceType)    
select * from Device.BvDetails where deviceType=@bvDeviceType

Declare @ucbDeviceType varchar(10) = (select Ucb from Machine.DeviceType)    
select * from Device.UcbDetails where deviceType=@ucbDeviceType

就最佳实践和性能而言,该方法是否正确?

标签: sqlsql-servertsql

解决方案


推荐阅读