泛微OA-根据值定位值所在的表

本文介绍了一种在 SQL Server 中使用动态 SQL 查询指定字符串在多个表和字段中出现的方法。通过声明游标并遍历系统目录视图,可以找出包含特定字符串的所有表和字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

--SQL server
--根据值查询弄个表
DECLARE @what varchar(800)
SET @what='XXXXXXX' --要搜索的字符串
DECLARE @sql varchar(8000)
DECLARE TableCursor CURSOR LOCAL FOR
SELECT sql='IF EXISTS ( SELECT 1 FROM ['+o.name+'] WHERE ['+c.name+'] LIKE ''%'+@what+'%'' ) PRINT ''所在的表及字段:['+o.name+'].['+c.name+']'''
FROM syscolumns c JOIN sysobjects o ON c.id=o.id
-- 175=char 56=int 可以查 select * from sys.types
WHERE o.xtype='U' AND c.status>=0 AND c.xusertype IN (175, 239, 231, 167 )
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @sql
WHILE @@FETCH_STATUS=0
BEGIN
    EXEC( @sql )
    FETCH NEXT FROM TableCursor INTO @sql
END
CLOSE TableCursor
-- 删除游标引用
DEALLOCATE TableCursor
<think>好的,我现在需要帮助用户了解如何在OA系统中修改字段属性。根据用户提供的引用内容,我需要综合这些信息,给出一个结构清晰的回答。 首先,用户提到的引用[3]和引用[1]都提到了通过修改数据库字段类型来改变字段属性。这似乎是一个直接的方法,但需要访问数据库,并且可能涉及重启服务。需要注意备份数据和检查历史数据的影响。 然后,引用[2]和引用[4]提到了通过流程引擎中的字段属性功能进行修改,比如使用SQL语句赋或调整显示属性。这种方法不需要直接操作数据库,可能更适合不熟悉数据库管理的用户,但需要进入特定的设置路径。 我需要分步骤说明这两种方法,确保用户理解每个步骤的操作流程和注意事项。同时,应该提醒用户在进行数据库操作前备份数据,避免数据丢失。此外,可能需要根据用户是否熟悉数据库操作来推荐不同的方法。 另外,用户可能关心修改字段属性后对现有流程和数据的影响,比如历史数据如何处理,是否需要调整单布局。这些问题需要在注意事项中提及,确保用户操作时不会遗漏关键步骤。 最后,生成相关问题可以帮助用户进一步了解相关操作,比如如何通过SQL或调整字段显示属性,这些扩展问题能帮助用户更全面地掌握字段属性的管理。</think>### OA系统修改字段属性方法教程 在OA系统中修改字段属性主要有两种方法:**通过数据库直接修改字段类型**和**通过流程单字段属性功能调整**。以下是具体操作步骤: --- #### 方法一:通过数据库修改字段类型 **适用场景**:需要修改字段的物理存储类型(如varchar转int)或结构变更 **步骤说明**: 1. **定位物理与字段** - 使用SQL查询单对应的物理ID: ```sql SELECT ID FROM workflow_bill WHERE TABLENAME='formtable_main_XXX'; ``` 其中`formtable_main_XXX`为目标名[^3]。 - 在`formtable_main_XXX`中查看原字段(如字段A)与新字段(如Anew)的类型差异。 2. **执行字段类型修改** - 使用`ALTER TABLE`语句调整字段类型: ```sql ALTER TABLE formtable_main_XXX ALTER COLUMN A [目标类型]; ``` 例如将varchar(50)改为int[^1]。 3. **处理历史数据与重启服务** - 若原字段有数据,需确保类型转换兼容性(如文本转数字需清洗数据)。 - 修改完成后重启OA服务使配置生效[^3]。 **注意事项**: - 操作前需备份数据库,避免数据丢失。 - 若字段关联流程单,需检查相关单是否需重新绑定字段。 --- #### 方法二:通过流程单字段属性功能调整 **适用场景**:调整字段显示规则、赋逻辑或动态计算 **步骤说明**: 1. **进入字段属性设置页面** - 路径:`后端-流程引擎-路径管理-路径设置-流程-流转设置-单内容-显示模板-字段属性`[^2]。 2. **使用SQL或计算逻辑** - 通过`doFieldSQL`函数实现动态赋: ```sql doFieldSQL("SELECT [达式] FROM [名] WHERE [条件关联字段]") ``` 例如统计特定条件下的记录数并赋给当前字段[^4]。 3. **设置字段显示/隐藏规则** - 在字段属性中配置条件达式,控制字段在前端的可见性。 **注意事项**: - SQL语句需确保语法正确,避免关联查询导致性能问题。 -逻辑需与字段数据类型匹配(如数字字段不可赋文本)。 --- #### 两种方法对比 | **方法** | **优点** | **缺点** | |------------------|-------------------------|----------------------------| | 数据库修改 | 直接修改底层结构 | 需数据库权限,操作风险较高 | | 字段属性功能调整 | 无需编程,可视化配置 | 仅限逻辑层,不改变物理存储 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值