达梦给表hm_sys.sys_dms_obj_map的SRC_FIELD字段中每个值最后加上,psrtype,device_asset_id
时间: 2023-09-07 11:13:19 浏览: 97
好的,你可以使用以下 SQL 语句来更新表 hm_sys.sys_dms_obj_map 的 SRC_FIELD 字段:
```
UPDATE hm_sys.sys_dms_obj_map SET SRC_FIELD = CONCAT(SRC_FIELD, ',psrtype,device_asset_id');
```
这会将 SRC_FIELD 字段中的每个值都添加上 ",psrtype,device_asset_id"。注意,如果 SRC_FIELD 字段中已经包含了这个字符串,那么它们也会被重复添加。如果你只想添加一次,可以使用下面的 SQL 语句:
```
UPDATE hm_sys.sys_dms_obj_map SET SRC_FIELD = CONCAT(SRC_FIELD, IF(INSTR(SRC_FIELD, ',psrtype,device_asset_id') > 0, '', ',psrtype,device_asset_id'));
```
这个语句会先检查 SRC_FIELD 字段中是否已经包含了 ",psrtype,device_asset_id",如果已经包含了,就不会再添加了。
相关问题
达梦给表hm_sys.sys_dms_obj_map的SRC_FIELD字段最后加上,psrtype,device_asset_id
好的,您需要执行以下 SQL 语句来修改表 hm_sys.sys_dms_obj_map:
```
ALTER TABLE hm_sys.sys_dms_obj_map ADD psrtype VARCHAR(50) DEFAULT NULL;
ALTER TABLE hm_sys.sys_dms_obj_map ADD device_asset_id VARCHAR(50) DEFAULT NULL;
```
这将向表 hm_sys.sys_dms_obj_map 中添加两个新的列,分别为 psrtype 和 device_asset_id。这两个列的默认值为 NULL。现在您可以向这两个列插入数据了。
提升代码速度 foreach (R_DistributionAllopatry r_DistributionAllopatry in q) { BaseBusiness<DMS_TempData> DMS2_Month = new BaseBusiness<DMS_TempData>("monthdb"); var DMS2_MonthService = DMS2_Month.Service; //var qq = Service.GetIQueryable<DMS_TempData>().Where(a => a.SampleID == r_DistributionAllopatry.NewSampleId); var qq = DMS2_MonthService.GetListBySql<DMS_TempData>("select * from DMS_TempData" + r_DistributionAllopatry.TestDataTableName + " where sampleId='" + r_DistributionAllopatry.NewSampleId + "'"); if (qq.Count() > 0) r_DistributionAllopatry.IsCompleted = true; }
这段代码中存在较大的性能问题。主要有以下两点:
1. 在 foreach 循环中,每次都会实例化一个 BaseBusiness 对象,这可能会导致不必要的开销。可以将实例化的代码提到循环外部,避免重复创建对象。
2. 在循环内部,执行了一条 SQL 查询语句,这也会导致性能问题。可以考虑将查询语句改为使用 Entity Framework 的 Linq 语句,或者使用存储过程等方式来避免 SQL 查询语句的性能问题。
改进后的代码如下所示:
```
BaseBusiness<DMS_TempData> DMS2_Month = new BaseBusiness<DMS_TempData>("monthdb");
var DMS2_MonthService = DMS2_Month.Service;
var query = DMS2_MonthService.GetIQueryable<DMS_TempData>();
foreach (R_DistributionAllopatry r_DistributionAllopatry in q)
{
var qq = query.Where(a => a.SampleID == r_DistributionAllopatry.NewSampleId);
if (qq.Count() > 0)
r_DistributionAllopatry.IsCompleted = true;
}
```
以上是基于代码片段进行的简单分析,如果您有更多的代码或者其他方面的问题,欢迎继续提问。
阅读全文