1.存储过程动态表查询

USE [NETWORKING_AUDIT]
GO
/****** Object: StoredProcedure [dbo].[impConfigInfo] Script Date: 01/04/2019 08:39:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: wm
-- Create date: 20181215
-- Description: 导入dbo.T_UNIT_AUDIT、dbo.T_UNIT_DELIVERY_CONFIG、dbo.T_ETL_CONFIG、dbo.T_AUDIT_TASK 配置信息
-- pzb 表字段:[市(县、区)] ,[行政区划代码],[单位层次],[单位编码],[单位名称]
-- ,[统一社会信用代码证号/_组织机构代码证号],[行业类型],[数据名称],[系统名称] ,[数据类型]
-- ,[是否含多套数据] ,[数据内容],[数据备份类型],[采集表类型],[是否市级部门集中管理],[备注] -- =============================================
ALTER PROCEDURE [dbo].[impConfigInfo]
@paramTableName varchar(200),
@errorInfo VARCHAR(8000) OUTPUT
AS
BEGIN ---开启事务
BEGIN tran
begin try DECLARE @BakTableName VARCHAR(200)
DECLARE @str VARCHAR(800)
DECLARE @tableName VARCHAR(200)
SET NOCOUNT ON -----------------!!!注意设置,取消增删改返回值 -----------------------------删除无效行
DECLARE @delsql VARCHAR(8000)
SET @delsql = '
delete from '+@paramTableName+'
where ([行政区划代码] is null or [行政区划代码]=''null'' OR LEN([行政区划代码])=0)
and ([单位编码] is null or [单位编码]=''null'' OR LEN([单位编码])=0)
and ([单位名称] is null or [单位名称]=''null'' OR LEN([单位名称])=0);
select distinct * into '+@paramTableName+'_1 from '+@paramTableName+';
drop table ['+@paramTableName+'];
EXEC sp_rename '''+@paramTableName+'_1'','''+@paramTableName+''';
'
EXEC (@delsql); ------------------------------插入单位表信息前备份单位表 SET @tableName = 'T_UNIT_AUDIT'
--SELECT REPLACE(CONVERT(VARCHAR(200),GETDATE(),23),'-','')
SET @BakTableName = @tableName+'_'+REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(200),GETDATE(),20),'-',''),' ',''),':','')+'_bak'
SET @str = '
IF not EXISTS(
SELECT 1 FROM [BackupsTables].sys.tables
where name = '''+@BakTableName+'''
)
begin
select * into [BackupsTables].[dbo].['+@BakTableName+'] from [NETWORKING_AUDIT].[dbo].['+@tableName+'];
end
'
EXEC (@str) ------------------------------删除单位表重复信息
DECLARE @sql1 VARCHAR(8000)
SET @sql1 = '
IF EXISTS(SELECT 1
FROM dbo.T_UNIT_AUDIT a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
)
BEGIN
DELETE FROM '+@paramTableName+'
WHERE [单位编码] IN
(
SELECT b.[单位编码]
FROM dbo.T_UNIT_AUDIT a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
)
AND [行政区划代码] IN
(
SELECT b.[行政区划代码]
FROM dbo.T_UNIT_AUDIT a, '+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
)
END
'
EXEC (@sql1); ---------插入单位表信息
DECLARE @sql2 VARCHAR(8000)
SET @sql2 = '
INSERT INTO dbo.T_UNIT_AUDIT
( XZ_CODE ,
UNIT_NAME ,
UNIT_CODE ,
INDUSTRY_CODE,
INDUSTRY_NAME ,
SORT
)
SELECT
distinct
[行政区划代码],
[单位名称],
[单位编码],
(CASE WHEN [行业类型] LIKE ''%党政%'' THEN ''''
WHEN [行业类型] LIKE ''%医院%'' THEN ''''
WHEN [行业类型] LIKE ''%金融%'' THEN ''''
WHEN [行业类型] LIKE ''%国企%'' THEN ''''
WHEN [行业类型] LIKE ''%高校%'' THEN ''''
END),
[行业类型],
'''' sort
FROM '+@paramTableName+'
' EXEC (@sql2); ------------------------------插入配置表信息前备份配置表
SET @tableName = 'T_UNIT_DELIVERY_CONFIG'
SET @BakTableName = @tableName+'_'+REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(200),GETDATE(),20),'-',''),' ',''),':','')+'_bak'
SET @str = '
IF not EXISTS(
SELECT 1 FROM [BackupsTables].sys.tables
where name = '''+@BakTableName+'''
)
begin
select * into [BackupsTables].[dbo].['+@BakTableName+'] from [NETWORKING_AUDIT].[dbo].['+@tableName+'];
end
'
EXEC (@str) ------------------------------删除配置表重复信息
DECLARE @sql3 VARCHAR(8000)
SET @sql3 = '
IF EXISTS(SELECT 1
FROM dbo.T_UNIT_DELIVERY_CONFIG a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
AND a.[FILE_NAME]= b.[系统名称]
)
BEGIN
DELETE FROM '+@paramTableName+'
WHERE [单位编码] IN
(
SELECT b.[单位编码]
FROM dbo.T_UNIT_DELIVERY_CONFIG a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
AND a.[FILE_NAME]= b.[系统名称]
)
AND [行政区划代码] IN
(
SELECT b.[行政区划代码]
FROM dbo.T_UNIT_DELIVERY_CONFIG a, '+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
AND a.[FILE_NAME]= b.[系统名称]
)
END
'
EXEC (@sql3); ---------插入配置表信息
DECLARE @sql4 VARCHAR(8000)
SET @sql4 = '
INSERT INTO dbo.T_UNIT_DELIVERY_CONFIG
(
UNIT_CODE ,
UNIT_NAME ,
SYS_NAME ,
SYS_TYPE ,
COLLECT_METHOD ,
BACKUP_FILE_TYPE ,
ENCRYPT ,
COMPRESS ,
FILE_NAME ,
ACCOUNT_TYPE ,
XZ_CODE,
INDUSTRY_CODE,
INDUSTRY_NAME,
DB_BACKUP_MODE
)
SELECT
distinct
[单位编码],
[单位名称],
[系统名称],
(CASE WHEN [数据类型] LIKE ''%财务%'' THEN ''''
WHEN [数据类型] LIKE ''%业务%'' THEN ''''
END) sys_type,
[采集表类型],
[数据备份类型],
1,
1,
[系统名称],
[数据类型],
[行政区划代码],
(CASE WHEN [行业类型] LIKE ''%党政%'' THEN ''''
WHEN [行业类型] LIKE ''%医院%'' THEN ''''
WHEN [行业类型] LIKE ''%金融%'' THEN ''''
WHEN [行业类型] LIKE ''%国企%'' THEN ''''
WHEN [行业类型] LIKE ''%高校%'' THEN ''''
END),
[行业类型],
''全量''
FROM '+@paramTableName+'
'
EXEC (@sql4); ------------------------------插入ETL配置表信息前备份ETL配置表
SET @tableName = 'T_ETL_CONFIG'
SET @BakTableName = @tableName+'_'+REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(200),GETDATE(),20),'-',''),' ',''),':','')+'_bak'
SET @str = '
IF not EXISTS(
SELECT 1 FROM [BackupsTables].sys.tables
where name = '''+@BakTableName+'''
)
begin
select * into [BackupsTables].[dbo].['+@BakTableName+'] from [NETWORKING_AUDIT].[dbo].['+@tableName+'];
end
'
EXEC (@str) ------------------------------删除ETL配置表重复信息
DECLARE @sql5 VARCHAR(8000)
SET @sql5 = '
IF EXISTS(SELECT 1
FROM dbo.T_ETL_CONFIG a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
AND a.sys_name = b.[系统名称]
)
BEGIN
DELETE FROM '+@paramTableName+'
WHERE [单位编码] IN
(
SELECT b.[单位编码]
FROM dbo.T_ETL_CONFIG a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
AND a.sys_name = b.[系统名称]
)
AND [行政区划代码] IN
(
SELECT b.[行政区划代码]
FROM dbo.T_ETL_CONFIG a, '+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
AND a.sys_name = b.[系统名称]
)
END
'
EXEC (@sql5); ---------插入ETL配置表信息
DECLARE @sql6 VARCHAR(8000)
SET @sql6 = '
INSERT INTO dbo.T_ETL_CONFIG
( UNIT_CODE ,
UNIT_NAME ,
SYS_NAME ,
TEMPLATE_NAME ,
XZ_CODE
)
SELECT
distinct
a.[单位编码],
a.[单位名称],
a.[系统名称],
b.[对应转换模板路径],
a.[行政区划代码]
FROM '+@paramTableName+' a left join dbo.t_stcwpzb b
on a.[系统名称] = b.[财务软件及版本] ' EXEC (@sql6); ------------------------------插入审计任务表信息前备份审计任务表
SET @tableName = 'T_AUDIT_TASK'
SET @BakTableName = @tableName+'_'+REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(200),GETDATE(),20),'-',''),' ',''),':','')+'_bak'
SET @str = '
IF not EXISTS(
SELECT 1 FROM [BackupsTables].sys.tables
where name = '''+@BakTableName+'''
)
begin
select * into [BackupsTables].[dbo].['+@BakTableName+'] from [NETWORKING_AUDIT].[dbo].['+@tableName+'];
end
'
EXEC (@str) ----------------------------删除审计任务表重复信息
DECLARE @sql7 VARCHAR(8000)
SET @sql7 = '
IF EXISTS(SELECT 1
FROM dbo.T_AUDIT_TASK a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
)
BEGIN
DELETE FROM '+@paramTableName+'
WHERE [单位编码] IN
(
SELECT b.[单位编码]
FROM dbo.T_AUDIT_TASK a,'+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
)
AND [行政区划代码] IN
(
SELECT b.[行政区划代码]
FROM dbo.T_AUDIT_TASK a, '+@paramTableName+' b
WHERE a.XZ_CODE = b.[行政区划代码]
AND a.UNIT_CODE= b.[单位编码]
)
END
'
EXEC (@sql7); -----------插入审计任务表信息
DECLARE @sql8 VARCHAR(8000)
SET @sql8 = '
INSERT INTO dbo.T_AUDIT_TASK
( UNIT_CODE ,UNIT_NAME ,
INDUSTRY_CODE ,INDUSTRY_NAME ,
YEAR ,DATA_TYPE ,
STATE ,CREATE_TIME ,
AUDIT_METHOD_ID ,IS_ENABLE ,
STANDARD_DB_IP ,STANDARD_DB_NAME ,STANDARD_DB_TYPE ,
XZ_CODE ,
DOUBT_DB_IP ,DOUBT_DB_NAME ,DOUBT_DB_TYPE
)
SELECT distinct
a.[单位编码]
,a.[单位名称]
,(CASE WHEN [行业类型] LIKE ''%党政%'' THEN ''''
WHEN [行业类型] LIKE ''%医院%'' THEN ''''
WHEN [行业类型] LIKE ''%金融%'' THEN ''''
WHEN [行业类型] LIKE ''%国企%'' THEN ''''
WHEN [行业类型] LIKE ''%高校%'' THEN ''''
END),
a.[行业类型],2018,0,
''error'',GETDATE(),
b.methodModelID,1,''100.80.10.36'',CAST(a.[行政区划代码] AS VARCHAR(200))+''_cw'',''sqlserver'',
a.[行政区划代码],''100.80.10.30'',''410000_yd'',''sqlserver''
FROM '+@paramTableName+' a CROSS JOIN [wqb_upgrade].dbo.auditMethodModel b
WHERE b.DATA_TYPE = ''财务''
AND b.INDUSTRY_CODE = ''''
'
EXEC (@sql8); end try
begin catch
SELECT @errorInfo = Error_message()
if(@@trancount>0)
rollback tran
END catch
if(@@trancount>0)
commit tran END

2.事务处理

--常用语句就四个。

--Begin Transaction:标记事务开始。
--Commit Transaction:事务已经成功执行,数据已经处理妥当。
--Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
--Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。 CREATE TABLE lives(Eat VARCHAR(200),Play VARCHAR(300),Numb int) ---开启事务
begin tran
--错误扑捉机制,看好啦,这里也有的。并且可以嵌套。
begin try
--语句正确
insert into lives (Eat,Play,Numb) values ('猪肉','足球',1)
--Numb为int类型,出错
insert into lives (Eat,Play,Numb) values ('猪肉','足球','abc')
--语句正确
insert into lives (Eat,Play,Numb) values ('狗肉','篮球',2)
end try
begin catch
select Error_number() as ErrorNumber, --错误代码
Error_severity() as ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到
Error_state() as ErrorState , --错误状态码
Error_Procedure() as ErrorProcedure , --出现错误的存储过程或触发器的名称。
Error_line() as ErrorLine, --发生错误的行号
Error_message() as ErrorMessage --错误的具体信息
if(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务
rollback tran ---由于出错,这里回滚到开始,第一条语句也没有插入成功。
end catch
if(@@trancount>0)
commit tran --如果成功Lives表中,将会有3条数据。 --表本身为空表,ID ,Numb为int 类型,其它为nvarchar类型
select * from lives --------调用带返回值的存储过程
DECLARE @zz VARCHAR(200)
EXEC ceshi @zz output
SELECT @zz

3.批量还原sqlserver备份

 SET NOCOUNT ON
DECLARE @disk NVARCHAR(max)
DECLARE @folederPath NVARCHAR(max)
DECLARE @cmdSql NVARCHAR(max)
DECLARE @filePath NVARCHAR(max)
DECLARE @targetDataPath NVARCHAR(max)
DECLARE @targetLogPath NVARCHAR(max)
DECLARE @restoreDate NVARCHAR(max)
DECLARE @fileName NVARCHAR(max); --***********************需要配置************************
----@disk 存放sqlserver备份文件的盘符,例如:'d'
SET @disk = 'e'
----@folederPath 存放sqlserver备份文件的文件夹路径,例如:'kk\test'
SET @folederPath = 'Idea\qq'
----@targetPath 还原出来的数据文件存放的路径,例如:'D:\kk\ta\d'
SET @targetDataPath = 'e:\Idea\qq'
----@targetPath 还原出来的日志文件存放的路径,例如:'D:\kk\ta\l'
SET @targetLogPath = 'e:\Idea\qq'
--******************************************************* SELECT @restoreDate = REPLACE(CONVERT(NVARCHAR(2000),GETDATE(),23),'-','')
SET @cmdSql ='exec master..xp_cmdshell '''+@disk+':&&cd '+@folederPath+'&&dir /s/b''' CREATE TABLE #tempTable ( filePath NVARCHAR(max) );
INSERT #tempTable
EXEC ( @cmdSql
); DECLARE My_Cursor CURSOR
FOR
( SELECT filePath,right(filePath,CHARINDEX('\',reverse(filePath))-1) fileN
FROM #tempTable
);
OPEN My_Cursor;
FETCH NEXT FROM My_Cursor INTO @filePath,@fileName;
WHILE @@FETCH_STATUS = 0
BEGIN IF @filePath != 'NUll'
BEGIN DECLARE @dataName NVARCHAR(max);
DECLARE @logName NVARCHAR(max);
DECLARE @restoreSql NVARCHAR(max); CREATE TABLE #tempTable2
(
LogicalName NVARCHAR(max) ,
a NVARCHAR(max) ,
b NVARCHAR(max) ,
c NVARCHAR(max) ,
d NVARCHAR(max) ,
e NVARCHAR(max) ,
f NVARCHAR(max) ,
g NVARCHAR(max) ,
h NVARCHAR(max) ,
i NVARCHAR(max) ,
j NVARCHAR(max) ,
k NVARCHAR(max) ,
l NVARCHAR(max) ,
m NVARCHAR(max) ,
n NVARCHAR(max) ,
o NVARCHAR(max) ,
p NVARCHAR(max) ,
q NVARCHAR(max) ,
r NVARCHAR(max) ,
s NVARCHAR(max) ,
t NVARCHAR(max)
);
INSERT #tempTable2
EXEC
( 'RESTORE FILELISTONLY FROM DISK = '''
+ @filePath + ''''
);
SELECT @dataName = LogicalName
FROM #tempTable2
WHERE LogicalName NOT LIKE '%log%';
SELECT @logName = LogicalName
FROM #tempTable2
WHERE LogicalName LIKE '%log%';
SET @restoreSql = 'RESTORE DATABASE [' + @fileName + '_'
+ @restoreDate + '] FROM DISK=''' + @filePath
+ '''WITH MOVE ''' + @dataName + '''To '''
+ @targetDataPath + '\' + @fileName + '.mdf'',
MOVE ''' + @logName + ''' To''' + @targetLogPath + '\'
+ @fileName + '.ldf'';
'; exec (@restoreSql);
PRINT '---------------------------------------分隔线-----------------------------------------'; DROP TABLE #tempTable2;
END;
FETCH NEXT FROM My_Cursor INTO @filePath,@fileName;
END;
CLOSE My_Cursor;
DEALLOCATE My_Cursor;
DROP TABLE #tempTable;

4.强制删除被占用的数据库

---------------查询数据库是否被占用
select * from master.sys.sysprocesses where dbid = db_id('kaifengshitiyuju078000000jindiekisxingzhengshiyezhuanbanaccess_20190212015105_5705723296216269111') ---------------方法1:强制断开连接
declare @d varchar(8000)
set @d= ' '
select @d=@d+ ' kill '+cast(spid as varchar)+char(13)
from master.sys.sysprocesses where dbid=db_id('lankaoxianchengshiguanliju036000000yongyouruanjiangrpu8sqlserver_20190130115932_8149424311300407836')
exec(@d) ---------------方法2:立即回滚事务设置脱机状态,然后还需要手动删除数据文件
ALTER DATABASE [410225_cw]
SET OFFLINE with rollback IMMEDIATE

SqlServer:SqlServer(存储过程动态表查询(取消返回值),事务处理,批量还原sqlserver备份,强制删除被占用的数据库)的更多相关文章

  1. SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

        存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出 ...

  2. 获取动态SQL查询语句返回值(sp_executesql)

    在写存储过程时经常会遇到需要拼接SQL语句的情况,一般情况下仅仅是为了执行拼接后的语句使用exec(@sql)即可. 而今天的一个存储过程却需要获取动态SQL的查询结果. 需求描述:在某表中根据Id值 ...

  3. [K/3Cloud] 如何从被调用的动态表单界面返回数据

    在需要返回数据的地方调用表单返回方法完成数据返回 this.View.ReturnToParentWindow(retData); 在调用界面的回调函数中取出返回结果的ReturnData即可使用. ...

  4. mysql 存储过程 动态表名

    今天写存储过程时,遇到要将表名最为参数的问题,如果不涉及到游标的话,使用prepare可以解决问题,但是,动态表名要运用在游标中的话,则prepare就得靠边站了. 集众人之智慧,最后,使用临时表解决 ...

  5. django 多表查询并返回结果

    (不喜勿喷,个人记录) 问题,有两张关联的表,表B的api_id关联表A的id 我想在页面上返回两张表查询之后的共同结果? 因为两张表的id是一样的,就先获取到表A的对象,然后拿表A的对象id当做表B ...

  6. .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比

    Pop分组模式和表格模式对比 关键词: 驰骋工作流引擎  表单引擎  ccflow   .net开源工作流  jflow Java工作流引擎 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 a ...

  7. C#调用存储过程带输出参数或返回值

    CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGI ...

  8. form 表单提交返回值问题

    form不比ajax,即使后台返回值后,在页面也不知道怎么去取值判断提交状态.所以前几天结合网上资料整了一个小案例,需要用到ajaxSubmit,即通过ajax来提交表单,好处在于可以在任何情况下进行 ...

  9. [转] ADO.NET调用存储过程带输出参数或返回值

    CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(), @studentname nvarchar() OUTPUT AS BEGIN S ...

随机推荐

  1. python 示例代码3

    示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...

  2. Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP

    Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP IP 工具类 源代码: /** * <p> * * @author XiaoPengwei ...

  3. es6 模块编译 *** is not function

    今天学习vuejs,里面用到了es6的写法,遇到了一个很怪的问题,不知道有人遇到么. 安装的模块引用:import Vue from 'vue';(注意,Vue处没有{},如果加上这个就报错Uncau ...

  4. C# Lambda表达式学习笔记

    本笔记摘抄自:https://www.cnblogs.com/leslies2/archive/2012/03/22/2389318.html,记录一下学习过程以备后续查用.     一.Lambda ...

  5. IDEA运行有问题debug正常解决方案

    朋友们!有没有遇到这样的问题,IDEA运行有问题,debug确是正常的,不经怀疑人生! 不要慌!点击maven,clean一下,再compile一下,就好啦! 不要慌!点击maven,clean一下, ...

  6. 下载Americanlife 语音材料

    下载剧本 下载后会在给定目录生成多pdf文件,文件名为每一节的名称 #!/usr/bin/env python3.5 # -*- coding: utf-8 -*- # @Time : 2019/11 ...

  7. redis异步处理

    $reids = new Redis; $redis->connect('localhost',6379); $redis->auth(''); //将数组转换成字符串再存到redis中 ...

  8. 【Python之路】特别篇--Bottle

    Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. Bottle框架大致可以分为以下部分 ...

  9. 什么是SYN Flood攻击?

    SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击.效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求. 说到原理,还得从TCP如 ...

  10. TensorFlow使用记录 (十四): Multi-task to MNIST + Fashion MNIST

    前言 后面工作中有个较重要的 task 是将 YOLOV3 目标检测和 LanNet 车道线检测和到一个网络中训练,特别的是,这两部分数据来自于不同的数据源.这和我之前在 caffe 环境下训练检测整 ...