上传者: luxp666
|
上传时间: 2025-05-21 14:18:57
|
文件大小: 24KB
|
文件类型: DOCX
### 用友维护人员常用SQL脚本解析与应用
#### 一、查询用友版本号
```sql
use ufsystem
go
select * from UA_Version
go
```
**知识点解析:**
- **ufsystem** 数据库是用友系统的管理数据库,存储了关于用友系统的基本配置信息。
- **UA_Version** 表存储了用友系统的版本信息,包括安装的版本号等。
- 通过此脚本可以快速检查用友系统的具体版本,这对于确保使用的补丁和升级包与当前系统版本兼容至关重要。
#### 二、查看系统用户信息
```sql
use ufsystem
select cUser_Id as 操作员编码,
cUser_Name as 操作员名称,
nState as 是否停用,
iAdmin as 是否帐套主管理,
cDept as 所属部门,
cBelongGrp as 所在组,
nState as 是否停用
from UA_User
```
**知识点解析:**
- **UA_User** 表包含了所有用友系统中的用户信息。
- 此脚本展示了如何查询用户的编码、名称、状态、是否为帐套主管、所属部门、所在组等信息。
- **iAdmin=1** 代表该用户拥有帐套主管的身份,通常用于管理和维护帐套。
- **nState=1** 表示该用户已被停用,无法登录系统。
#### 三、查看具有帐套主管身份的操作员
```sql
select cUser_Id as 操作员编码,
cUser_Name as 操作员名称
from UA_User
where iAdmin = 1;
```
**知识点解析:**
- **iAdmin** 字段用来标记用户是否为帐套主管。
- 通过此查询可以快速筛选出所有帐套主管,便于对他们进行管理或分配额外的任务权限。
#### 四、查看被停用的操作员
```sql
select cUser_Id as 操作员编码,
cUser_Name as 操作员名称
from UA_User
where nState = 1;
```
**知识点解析:**
- **nState** 字段用来标记用户是否被停用。
- 该脚本用于列出所有被停用的用户,这对于安全审计或者重新激活用户非常有用。
#### 五、帐套主子表相关信息
- **帐套主表 (ua_account):**
- **cAcc_Id** (账套号)
- **cAcc_Name** (账套名称)
- **cAcc_Path** (账套路径)
- **iYear** (启用会计期年)
- **iMonth** (启用会计期月)
- **cAcc_Master** (账套主管)
- **cCurCode** (本币代码)
- **cCurName** (本币名称)
- **cUnitName** (单位名称)
- **cUnitAbbre** (单位简称)
- **cUnitAddre** (单位地址)
- **cUnitZip** (邮政编码)
- **cUnitTel** (联系电话)
- **cUnitFax** (传真)
- **cUnitEMail** (电子邮件)
- **cUnitTaxNo** (税号)
- **cUnitLP** (法人)
- **cEntType** (企业类型)
- **cTradeKind** (行业类型)
- **cIsCompanyVer** (是否集团版)
- **cDomain** (域名)
- **cDescription** (备注)
- **cOrgCode** (机构编码)
- **iSysID** (账套内部标识)
- **帐套子表 (ua_account_sub):**
- **cAcc_Id** (账套号)
- **iYear** (账套年度)
- **cSub_Id** (模块标识)
- **bIsDelete** (是否删除)
- **bClosing** (是否关闭)
- **iModiPeri** (会计期间)
- **dSubSysUsed** (启用会计日期)
- **cUser_Id** (操作员)
- **dSubOriDate** (启用自然日期)
**知识点解析:**
- 帐套是用友系统中的基本单位,每个账套对应一个独立的企业或组织。
- **ua_account** 表包含了帐套的基本信息,如账套号、名称、路径等。
- **ua_account_sub** 表存储了账套的年度和其他模块的具体信息。
- **bClosing** 字段用于标记该年度是否已关闭,关闭后通常不允许对上一年度的数据进行修改。
#### 六、关闭上一年度的脚本
```sql
select * from ua_account_sub where cAcc_Id = '002' and iYear = 2008
update ua_account_sub set bClosing = 0 where cAcc_Id = '002' and iYear = 2008
```
**知识点解析:**
- 当用户从其他机器上做了账套升级并拷贝回来时,可能需要手动关闭上一年度。
- 此脚本用于查询并更新特定账套特定年度的状态,将其设置为未关闭状态。
#### 七、清除异常任务及单据锁定
```sql
use ufsystem
delete from ua_task
delete from ua_tasklog
go
delete from ufsystem..ua_task
delete from ufsystem..ua_tasklog
go
Select * From ua_task Where (cacc_id='***') -- 注:(***为账套号)
```
**知识点解析:**
- 在用友系统中,长时间未完成的任务可能会导致系统异常,此脚本用于清除这些异常任务及其日志记录。
- **ua_task** 和 **ua_tasklog** 表分别存储了正在进行的任务和任务的日志信息。
- 清除异常任务有助于提高系统的稳定性和响应速度。
#### 八、解决科目锁定问题
```sql
use UFDATA_002_2008
select ccode as 科目编码,
cauth as 功能名称,
cuser as 用户名,
cmachine as 机器名
from GL_mccontrol
delete from GL_mccontrol
```
**知识点解析:**
- 科目锁定问题是指某个科目被用户锁定,导致其他用户无法对该科目进行操作。
- **GL_mccontrol** 表存储了科目锁定的相关信息,包括科目编码、锁定的用户、机器名等。
- 通过查询此表可以找出被锁定的科目以及锁定的用户信息,进而采取措施解锁。
#### 九、获取数据表的所有列名
```sql
select * from ufsystem..ua
```
**知识点解析:**
- 获取一个数据表的所有列名对于进行数据迁移、备份或审计非常重要。
- 可以通过查询 SYSTEMOBJECT 和 SYSCOLUMN 表来实现这一目标。
- 此处提供了一个查询的基础框架,但完整的 SQL 语句需要根据实际需求进一步完善。
这些SQL脚本不仅涵盖了用友系统中常见的维护操作,还提供了处理特殊情况的方法。通过对这些脚本的理解和应用,用友系统的维护人员能够更高效地管理数据库,确保系统的稳定运行。