diff --git a/content/zh/docs/Developerguide/SET.md b/content/zh/docs/Developerguide/SET.md
index 8abaa6bda5e5b4b5faeea775126b5b415d1a2efe..488b6149aca77d560b74db0f264f8559f47e5fd2 100644
--- a/content/zh/docs/Developerguide/SET.md
+++ b/content/zh/docs/Developerguide/SET.md
@@ -53,6 +53,14 @@
{ {config_parameter = { expr | DEFAULT }}};
```
+- 设置自定义变量
+
+ ```
+ SET @var_name := expr [, @var_name := expr] ...
+ SET @var_name = expr [, @var_name = expr] ...
+ ```
+
+
## 参数说明
- **SESSION**
@@ -123,6 +131,28 @@
1. SET SESSION/GLOBAL 语法只有在B模式下(sql_compatibility = B)支持,并且GUC参数enable_set_variable_b_format打开的场景下才支持(enable_set_variable_b_format = on)。
2. 使用@@config\_parameter进行操作符运算时,尽量使用空格隔开。比如set @config\_parameter1=@config\_parameter1*2; 命令中,会将=@当做操作符,可将其修改为set @config\_parameter1= @config\_parameter1 * 2 。
+- **var_name**
+
+ 自定义变量名。变量名只能由数字、字母、下划线(_),点(.)、$组成,如果使用单引号、双引号等引用是,则可以使用其他字符,如'var_name',"var_name",\`var_name\`。
+
+ >  **说明:**
+ >
+ > 1. SET自定义用户变量的只有在B模式下(sql_compatibility = B)支持,并且GUC参数enable_set_variable_b_format打开的场景下才支持(enable_set_variable_b_format = on)。
+ > 2. 自定义变量只会存储整型,浮点型,字符串,位串和NULL。对于BOOLEAN,INT1,INT2,INT4,INT8类型会转为INT8类型;FLOAT4,FLOAT8,NUMBERIC会转化为FLOAT8进行存储(需要注意浮点型可能会有精度丢失);BIT类型以BIT存储,VARBIT类型以VARBIT存储;NULL值以NULL存储;其他类型若可转化为字符串,则转为TEXT存储。
+ > 3. 使用@var_name进行操作符运算时,尽量使用空格隔开。比如set @v1=@v2+1;命令中,会将=@当做操作符,可将其修改为set @v1= @v2+1。
+ > 4. 当sql_compatibility = B && enable_set_variable_b_format = on时,对于openGauss原始的@ expr,请参考[数字操作符](数字操作函数和操作符.md#zh-cn_topic_0283136987_zh-cn_topic_0237121971_zh-cn_topic_0059777932_s00454841bcf24ad18eed980c0e3a2f75),@需要与expr有空格,否则会将其解析成用户变量。
+ > 5. 未初始化的变量值未NULL。
+ > 6. Prepare语句中用户自定义变量存储的字符串只支持select/insert/update/delete/merge语法。
+ > 7. 对于连续赋值的场景,只支持@var_name1 := @var_name2 := ... := expr和@var_name1 = @var_name2 := ... := expr,等号(=)只有放在首位才表示赋值,其他位置表示比较操作符。
+
+- expr
+
+ 表达式,支持可直接或间接转为整型,浮点型,字符串,位串和NULL的表达式。
+
+ >  **注意:**
+ >
+ > 字符串表达式中避免包含口令等敏感信息的函数,如加解密类函数gs_encrypt,gs_decrypt等,防止敏感信息泄露。
+
## 示例
@@ -132,6 +162,39 @@ openGauss=# SET search_path TO tpcds, public;
--把日期时间风格设置为传统的 POSTGRES 风格(日在月前)。
openGauss=# SET datestyle TO postgres,dmy;
+
+-- set自定义用户变量的功能
+b=# show sql_compatibility;
+ sql_compatibility
+-------------------
+ B
+(1 row)
+
+b=# show enable_set_variable_b_format;
+ enable_set_variable_b_format
+------------------------------
+ on
+(1 row)
+
+b=# set @v1 := 1, @v2 := 1.1, @v3 := true, @v4 := 'dasda', @v5 := x'41';
+SET
+b=# select @v1, @v2, @v3, @v4, @v5, @v6, @v7;
+ @v1 | @v2 | @v3 | @v4 | @v5 | @v6 | @v7
+-----+-----+-----+-------+----------+-----+-----
+ 1 | 1.1 | 1 | dasda | 01000001 | |
+(1 row)
+
+-- prepare语法
+b=# set @sql = 'select 1';
+SET
+b=# prepare stmt as @sql;
+PREPARE
+b=# execute stmt;
+ ?column?
+----------
+ 1
+(1 row)
+
```
```
diff --git "a/content/zh/docs/Developerguide/\345\271\263\345\217\260\345\222\214\345\256\242\346\210\267\347\253\257\345\205\274\345\256\271\346\200\247.md" "b/content/zh/docs/Developerguide/\345\271\263\345\217\260\345\222\214\345\256\242\346\210\267\347\253\257\345\205\274\345\256\271\346\200\247.md"
index c309e3fbe826dc305d3d0f196600dd7d9c5a04e5..7db3164086012b8718de670eabfbdadf3e876e3d 100644
--- "a/content/zh/docs/Developerguide/\345\271\263\345\217\260\345\222\214\345\256\242\346\210\267\347\253\257\345\205\274\345\256\271\346\200\247.md"
+++ "b/content/zh/docs/Developerguide/\345\271\263\345\217\260\345\222\214\345\256\242\346\210\267\347\253\257\345\205\274\345\256\271\346\200\247.md"
@@ -91,6 +91,17 @@
>
>- 在数据库中,该参数只能是确定的一个值,要么始终设置为A,要么始终设置为B,请勿任意改动,否则会导致数据库行为不一致。
+## enable_set_variables_b_format
+
+**参数说明:**在MY数据库模式下是否支持自定义用户变量的功能。
+
+该参数属于USERSET类型参数,请参考[表1](重设参数.md#zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
+
+**取值范围:**布尔型
+
+- on表示在MY数据库模式下支持自定义用户变量。
+- off表示在MY数据库模式下不支持自定义用户变量。
+
## behavior\_compat\_options
**参数说明:**数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。