个人博客 用于记载日常收集的一些技术文章 ...
云星空 : Sql:SET FMTONLY ON 云星空 : Sql:SET FMTONLY ON https://www.cnblogs.com/2zhyi/archive/2013/04/22/3035171.html

SET FMTONLY { ON | OFF }

描述: 在查询时,只返回检索的元数据,不返回查询数据
权限:默认授予所有用户

当 SET FMTONLY ON 时,仅仅将执行查询所得的元数据发送到客户端。
SET FMTONLY 的设置是在执行或运行时设置,而不是在分析是设置。

select * from t_BD_Account; -- 返回查询数据 (282 行受影响)

SET FMTONLY ON; select * from t_BD_Account; SET FMTONLY OFF; -- 不返回查询数据 (0 行受影响)
郭少锋 编辑 2024-04-15 17:17:25 创建 2024-04-15 17:12:48 云星空
云星空 : Sql:SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 云星空 : Sql:SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED https://www.cnblogs.com/littlewrong/p/8952830.html

SET TRANSACTION ISOLATION LEVEL
{ READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SNAPSHOT
| SERIALIZABLE
}

READ UNCOMMITTED
指定语句可以读取已由其他事务修改但尚未提交的行。

在 READ UNCOMMITTED 级别运行的事务,不会发出共享锁来防止其他事务修改当前事务读取的数据。
READ UNCOMMITTED 事务也不会被排他锁阻塞,排他锁会禁止当前事务读取其他事务已修改但尚未提交的行。
设置此选项之后,可以读取未提交的修改,这种读取称为脏读。
在事务结束之前,可以更改数据中的值,行也可以出现在数据集中或从数据集中消失。

该选项的作用与在事务内所有 SELECT 语句中的所有表上设置 NOLOCK 相同。
这是隔离级别中限制最少的级别。

在 SQL Server 中,您还可以使用下列任意一种方法,在保护事务不脏读未提交的数据修改的同时尽量减少锁定争用:

READ COMMITTED
隔离级别,
并将 READ_COMMITTED_SNAPSHOT 数据库选项设置为 ON。

SNAPSHOT
隔离级别。

READ COMMITTED
指定语句不能读取已由其他事务修改但尚未提交的数据。 这样可以避免脏读。
其他事务可以在当前事务的各个语句之间更改数据,从而产生不可重复读取和虚拟数据。 该选项是 SQL Server 的默认设置。

READ COMMITTED 的行为取决于 READ_COMMITTED_SNAPSHOT 数据库选项的设置:

如果将 READ_COMMITTED_SNAPSHOT 设置为 OFF(默认设置),则 数据库引擎会使用共享锁防止其他事务在当前事务执行读取操作期间修改行。
共享锁还会阻止语句在其他事务完成之前读取由这些事务修改的行。
共享锁类型确定它将于何时释放。
行锁在处理下一行之前释放。
页锁在读取下一页时释放,表锁在语句完成时释放。

如果将 READ_COMMITTED_SNAPSHOT 设置为 ON,
则 数据库引擎会使用行版本控制为每个语句提供一个在事务上一致的数据快照,因为该数据在语句开始时就存在。
不使用锁来防止其他事务更新数据。
您可以使用 READCOMMITTEDLOCK 表提示为 READ COMMITTED 隔离级别上运行的事务中的各语句请求共享锁,而不是行版本控制。

快照隔离支持 FILESTREAM 数据。
在快照隔离模式下,事务中任何语句读取的 FILESTREAM 数据都将是在事务开始时便存在的数据的事务性一致版本。
郭少锋 编辑 2024-04-15 17:04:29 创建 2024-04-15 17:03:48 云星空
SQL : SQL 设置 SQL : SQL 设置 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
go
SET FMTONLY OFF; SET FMTONLY ON;SELECT * FROM T_MDL_ELEMENTGROUP WHERE 1 = 0 SET FMTONLY OFF;
go
SET NO_BROWSETABLE OFF;
郭少锋 创建 2024-04-15 16:52:40 SQL
云星空 : C# 判断是否空值 云星空 : C# 判断是否空值 if (string.IsNullOrEmpty(aKey)) { } // 判断是否空值 郭少锋 创建 2024-04-14 21:05:14 云星空 SQL : SQL 文本拼接 SQL : SQL 文本拼接 文本拼接

declare @FID_Src varchar(max) = ''

select @FID_Src = @FID_Src +','+ CONVERT(varchar(20),FID_SRC) from a_SeAlterEntry where FID = 1002
select SUBSTRING(@FID_Src, 2, LEN(@FID_Src) - 1)

-------------------------------------------------------------------------------------------------------------------------------------------
SELECT * FROM ICChatBillTitle WHERE FTypeID = 61 ORDER BY FInterID

SELECT FTypeID ,STUFF( ( SELECT CONVERT(nvarchar(100),FColName) +' '+ CONVERT(nvarchar(100),FColCaption) +' ,'
FROM ICChatBillTitle WHERE FTypeID = a1.FTypeID
ORDER BY FInterID
FOR XML PATH('') ),1,0,'')

FROM ICChatBillTitle a1
WHERE FTypeID = 61
GROUP BY FTypeID

-- 结果 Fdate 制单日期 ,FCustIDName 购货单位 ,FSaleStyleName 销售方式 ,


-------------------------------------------------------------------------------------------------------------------------------------------
select

FEntryId
,STUFF( ( select ';'+ CONVERT(nvarchar(100),FName) from (
-------------------------------------------------------------------------------------------------------------------------------------------
select a1.FPkId ,a1.FEntryId ,a2.FName
from PAEZ_TSGY a1
left join WGDP_t_Cust100001_L a2 on a2.FID = a1.F_PAEZ_TSGY -- 特殊工艺
-------------------------------------------------------------------------------------------------------------------------------------------
) b1 where FEntryId = b2.FEntryId order by FPkId for xml path('') ),1,1,'')

from (
-------------------------------------------------------------------------------------------------------------------------------------------
select a1.FPkId ,a1.FEntryId ,a2.FName
from PAEZ_TSGY a1
left join WGDP_t_Cust100001_L a2 on a2.FID = a1.F_PAEZ_TSGY -- 特殊工艺
-------------------------------------------------------------------------------------------------------------------------------------------
) b2 group by FEntryId
郭少锋 编辑 2024-04-10 19:51:48 创建 2023-01-25 17:23:19 SQL
SQL : SQL 文本拼接 SQL : SQL 文本拼接 select

b2.FEntryId

,stuff( ( select ';'+ convert(nvarchar(100),FMaterialName) from (
-------------------------------------------------------------------------------------------------------------------------------------------
select
a12.FMoEntryId
,b32.FName + (case when isnull(c11.FDataValue,'') = '' then '' else '('+ c11.FDataValue +')' end) FMaterialName -- 物料名称 + 规格

from T_PRD_PPBomEntry a12
left join T_BD_Material_L b32 on b32.FMaterialId = a12.FMaterialId and b32.FLocaleId = 2052 -- 物料名称
left join T_BD_FlexsItemDetailv c10 on c10.FID = a12.FAuxPropId -- 辅助属性
left join T_BAS_AssistantDataEntry_L c11 on c11.FEntryId = c10.FF100001 -- 规格
-------------------------------------------------------------------------------------------------------------------------------------------
) b1 where FMoEntryId = b2.FEntryId order by FMoEntryId for xml path('') ),1,1,'') FMtrllNameSub

from T_PRD_MoEntry b2
郭少锋 创建 2024-04-10 19:51:27 SQL
云星空 : 分析SQL脚本运行慢问题 云星空 : 分析SQL脚本运行慢问题 ctrl + alt + shift + m 调用性能监测

SQL报表.二开案例.分析SQL脚本运行慢问题
https://vip.kingdee.com/article/403967228758056704?productLineId=1&lang=zh-CN
郭少锋 创建 2024-04-10 17:07:55 云星空
python : python 日期计算 python : python 日期计算 import pandas as pd
import numpy as np
import datetime as dt

df = pd.read_excel('./日期问题.xlsx') # 导入数据

df['action_date'] = pd.to_datetime(df['action_date']) # 将日期列转成日期格式

df # 查看数据

#dt模块可轻松获取日期基本属性

df['年']=df['action_date'].dt.year
df['季度']=df['action_date'].dt.quarter
df['月']=df['action_date'].dt.month
df['日']=df['action_date'].dt.day
df['星期几']=df['action_date'].dt.dayofweek
df['周次']=df['action_date'].dt.week
df['时']=df['action_date'].dt.hour
df['分']=df['action_date'].dt.minute
df['秒']=df['action_date'].dt.second


df.head()

#计算一年中的第几天
#通过对天, 时,分的四则运算将日期转为序列数值数据

df['一年中的第几天']=df['action_date'].dt.dayofyear

df['一天中的第几分钟']=df['action_date'].apply(lambda x: x.minute + x.hour*60)

df['一天中的第几个10分钟'] = df['时'] * 6 + df['分'] // 10

df['数值'] = df["action_date"].values.astype(np.int64) // 10 ** 9


df['年月'] = df['action_date'].dt.year * 100 + df['action_date'].dt.month # 转年月(数值)


#判断日期是否闰年,年初年末,月初月末…
#apply

df['是否闰年'] = df['action_date'].apply(lambda x: x.is_leap_year) # 是否闰年
df['是否月初'] = df['action_date'].apply(lambda x: x.is_month_start) # 是否月初
df['是否月末'] = df['action_date'].apply(lambda x: x.is_month_end) # 月末
df['是否季节初'] = df['action_date'].apply(lambda x: x.is_quarter_start) # 季度初
df['是否季节末'] = df['action_date'].apply(lambda x: x.is_quarter_end) # 季度末
df['是否年初'] = df['action_date'].apply(lambda x: x.is_year_start) # 年初
df['是否年尾'] = df['action_date'].apply(lambda x: x.is_year_end) # 年内末
df['是否周末'] = df['action_date'].apply(lambda x: True if x.dayofweek in [5, 6] else False) # 是否周末

df.loc[((df['时'] >= 8) & (df['时'] < 22)), '是否营业时间'] = True


#字符串时段,季节

period_dict ={
23: '深夜', 0: '深夜', 1: '深夜',
2: '凌晨', 3: '凌晨', 4: '凌晨',
5: '早晨', 6: '早晨', 7: '早晨',
8: '上午', 9: '上午', 10: '上午', 11: '上午',
12: '中午', 13: '中午',
14: '下午', 15: '下午', 16: '下午', 17: '下午',
18: '傍晚',
19: '晚上', 20: '晚上', 21: '晚上', 22: '晚上',
}

df['时间段']=df['时'].map(period_dict)

# 一年中的哪个季度

season_dict = {
1: '春季', 2: '春季', 3: '春季',
4: '夏季', 5: '夏季', 6: '夏季',
7: '秋季', 8: '秋季', 9: '秋季',
10: '冬季', 11: '冬季', 12: '冬季',
}

df['季节']=df['月'].map(season_dict)



#for循环快捷计算

time_features = ['year', 'month', 'quarter', 'week', 'day', 'dayofweek', 'dayofyear']
dtype = np.int16

for time_feature in time_features:

df[time_feature] = getattr(df['action_date'].dt, time_feature).astype(dtype)


#时间间隔天数计算
# 设置初始的时间 2021-06-01

base_time = datetime.datetime.strptime('2021-06-01', '%Y-%m-%d')

df['时间差'] = df['action_date'].apply(lambda x: x-base_time).dt.days # 计算时间差

df['间隔天数'] = list(map(lambda x: x.days, pd.to_datetime('today') - df['action_date'])) # 距离今天天数
郭少锋 编辑 2024-04-10 16:15:40 创建 2023-11-18 21:40:25 python
云星空 : 简单账表 设置字段精度 云星空 : 简单账表 设置字段精度
#region| 设置:报表属性 Initialize() |
public override void Initialize()
{
base.Initialize();

this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
this.IsCreateTempTableByPlugin = true;
this.ReportProperty.IsUIDesignerColumns = false;
this.ReportProperty.IsGroupSummary = true;
this.ReportProperty.SimpleAllCols = false;
this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;

this.ReportProperty.PrimaryKeyFieldName = "FID"; // 单据头合并显示 标识
this.ReportProperty.IdentityFieldName = "FIdentityId"; // 字段筛选需要用到,名称不可修改

#region| 设置:字段精度 |
List<DecimalControlField> aList = new List<DecimalControlField>();

DecimalControlField aField = new DecimalControlField();
aField.DecimalControlFieldName = "FPrecision"; // 用于 控制精度的 字段名称:整数字段
aField.ByDecimalControlFieldName = "FQty1"; // 要 设置精度的 字段名称:数量字段
aList.Add(aField);

aList.Add( new DecimalControlField() { DecimalControlFieldName = "FRow", ByDecimalControlFieldName = "FQtyOut" } ); // FRow 精度 整数字段 FQtyOut 数量字段

this.ReportProperty.DecimalControlFieldList = aList;
#endregion
}
#endregion
郭少锋 创建 2024-04-09 21:11:51 云星空
云星空 : Office 的安装进度在 90% 卡住了 云星空 : Office 的安装进度在 90% 卡住了 如果 Office 仍在安装,请结束 wusa.exe(Windows 更新)

你可以等待 Windows 更新完成,但可能会遭受更多延迟。 在“任务管理器”中结束 Windows 更新会更可靠,因此 Windows Installer 可继续运行并可用于 Office 安装。 执行下列过程可结束 Windows 更新进程。

注意: 禁用 Windows 更新可能会影响安装有效的 Windows 更新。 如果你在安装 Office后重启计算机,则 Windows 更新进程应继续进行。 如果该进程未继续,请参阅下面的步骤 5。

让 Office 安装继续运行...在 90% 时等待。

在键盘上按 ctrl+alt+delete(同时按下所有键),然后选择“任务管理器”(或在 Windows 7 中为“启动任务管理器”)。

在“进程”选项卡上,选择“Windows 更新独立安装程序”(wusa.exe)。

选择“结束任务”(或在 Windows 7 中为“结束进程”)。 Office 的安装现在应继续进行,直到完成。

在安装完成后,按“重启”以重启计算机,根据需要让 Windows 更新进程重启。 你可能需要通过在此处选择 Windows 版本手动重启 Windows 更新。
郭少锋 创建 2024-04-07 19:54:38 云星空