数据库临时表的用法

CREATE PROCEDURE [dbo].[SP_SelectProcessID]
@ProcessID INT,
@Message nvarchar(max) OUTPUT
AS
create table #TmpProcessID (id int identity(1,1), tmpStr nvarchar(50));
declare @n int
declare @rows int

truncate table #TmpProcessID
insert into #TmpProcessID
select distinct Tproject.project_name from TFlowDetails inner join Tproject on TFlowDetails.fd_project_id=Tproject.project_id
where TFlowDetails.fd_process_id [email protected]
select @[email protected]@rowcount
declare @projectName nvarchar(50)
declare @WarMessage nvarchar(1000)
select @WarMessage=‘‘
select @n=1
while @n<[email protected]
begin
select @projectName=tmpStr from #TmpProcessID where [email protected]
select @[email protected]+ @projectName+‘、‘
select @n= @n+1
end
if isnull(@WarMessage,‘‘)<>‘‘
begin
select @WarMessage=left(@WarMessage,len(@WarMessage)-1)
select @WarMessage=‘项目‘[email protected]+‘的流程图正在使用此工序,请在流程图中删除此工序后再删除!\r\n‘
end

truncate table #TmpProcessID
insert into #TmpProcessID
select distinct Tproject.project_name from TBudget inner join Tproject on TBudget.Project_ID=Tproject.project_id
where [email protected]
select @[email protected]@rowcount
declare @projectName1 nvarchar(50)
declare @WarMessage1 nvarchar(1000)
select @WarMessage1=‘‘
select @n=1
while @n<[email protected]
begin
select @projectName1=tmpStr from #TmpProcessID where [email protected]
select @[email protected]+ @projectName1+‘、‘
select @n= @n+1
end
if isnull(@WarMessage1,‘‘)<>‘‘
begin
select @WarMessage1=left(@WarMessage1,len(@WarMessage1)-1)
select @WarMessage1=‘项目‘[email protected]+‘对此工序进行了项目匡算,请删除此工序的项目匡算后再删除此工序!\r\n‘
end

truncate table #TmpProcessID
insert into #TmpProcessID
select distinct Tproject.project_name from Tflow_jump inner join Tproject on Tflow_jump.ProjectID=Tproject.project_id
where [email protected]
select @[email protected]@rowcount
declare @projectName2 nvarchar(50)
declare @WarMessage2 nvarchar(1000)
select @WarMessage2=‘‘
select @n=1
while @n<[email protected]
begin
select @projectName2=tmpStr from #TmpProcessID where [email protected]
select @[email protected]+ @projectName2+‘、‘
select @n= @n+1
end
if isnull(@WarMessage2,‘‘)<>‘‘
begin
select @WarMessage2=left(@WarMessage2,len(@WarMessage2)-1)
select @WarMessage2=‘项目‘[email protected]+‘对此工序进行了流程跳转配置,请先删除此工序的流程跳转后再删除此工序!\r\n‘
end

truncate table #TmpProcessID
insert into #TmpProcessID
select Tproject.project_name from TFlowCreateTask inner join Tproject on TFlowCreateTask.ProjectID=Tproject.project_id
where TFlowCreateTask.CurrentProcessID [email protected]
select @[email protected]@rowcount
declare @projectName3 nvarchar(50)
declare @WarMessage3 nvarchar(1000)
select @WarMessage3=‘‘
select @n=1
while @n<[email protected]
begin
select @projectName3=tmpStr from #TmpProcessID where [email protected]
select @[email protected]+ @projectName3+‘、‘
select @n= @n+1
end
if isnull(@WarMessage3,‘‘)<>‘‘
begin
select @WarMessage3=left(@WarMessage3,len(@WarMessage3)-1)
select @WarMessage3=‘项目‘[email protected]+‘在任务直接生成中用到此工序,请先删除此工序直接生成的任务后再删除此工序!\r\n‘
end

truncate table #TmpProcessID
insert into #TmpProcessID
select distinct Tproject.project_name from WorkloadTemple inner join Tproject on WorkloadTemple.Projectid=Tproject.project_id
where WorkloadTemple.Processid [email protected]
select @[email protected]@rowcount
declare @projectName4 nvarchar(50)
declare @WarMessage4 nvarchar(1000)
select @WarMessage4=‘‘
select @n=1
while @n<[email protected]
begin
select @projectName4=tmpStr from #TmpProcessID where [email protected]
select @[email protected]+ @projectName4+‘、‘
select @n= @n+1
end
if isnull(@WarMessage4,‘‘)<>‘‘
begin
select @WarMessage4=left(@WarMessage4,len(@WarMessage4)-1)
select @WarMessage4=‘项目‘[email protected]+‘的工作报告模板用到此工序,请先删除此工序的工作报告模板后再删除此工序!\r\n‘
end

truncate table #TmpProcessID
insert into #TmpProcessID
select distinct MIS_Users.uname from TUserSkill inner join MIS_Users on TUserSkill.UserId=MIS_Users.ID
where [email protected]
select @[email protected]@rowcount
declare @projectName5 nvarchar(50)
declare @WarMessage5 nvarchar(1000)
select @WarMessage5=‘‘
select @n=1
while @n<[email protected]
begin
select @projectName5=tmpStr from #TmpProcessID where [email protected]
select @[email protected]+ @projectName5+‘、‘
select @n= @n+1
end
if isnull(@WarMessage5,‘‘)<>‘‘
begin
select @WarMessage5=left(@WarMessage5,len(@WarMessage5)-1)
select @WarMessage5=‘用户‘[email protected]+‘对此工序进行了技能设置,请删除此工序的技能设置后再删除此工序!\r\n‘
end

declare @num int
select @num= count( ProcessID) from Tgongxusoft where ProcessID [email protected]
if @num>0
begin
declare @WarMessage6 nvarchar(100)
select @WarMessage6=‘此工序配置有工艺程序软件,请删除此工序的工艺程序软件后再删除此工序!\r\n‘
select @Message=isnull(@WarMessage,‘‘)+isnull(@WarMessage1,‘‘)+isnull(@WarMessage2,‘‘)+isnull(@WarMessage3,‘‘)+isnull(@WarMessage4,‘‘)+isnull(@WarMessage5,‘‘)+isnull(@WarMessage6,‘‘)
end
else
begin
select @Message=isnull(@WarMessage,‘‘)+isnull(@WarMessage1,‘‘)+isnull(@WarMessage2,‘‘)+isnull(@WarMessage3,‘‘)+isnull(@WarMessage4,‘‘)+isnull(@WarMessage5,‘‘)
end

时间: 2024-10-09 23:58:42

数据库临时表的用法的相关文章

nosql数据库MongoDB的用法

MongoDB常用命令 1.启动命令 mongod 启动数据库进程 --dbpath 制定数据库的目录 --port 制定数据库的端口,默认是27017 --bind_ip 绑定IP --directoryperdb 为每个db创建一个独立子目录 --logpath 制定日志存放目录 --logappend 指定日志生成方式(追加/覆盖) 例如:mongod --dbpath db --port 27098 --directoryperdb --logpath db\logs\mongodb.l

数据库的基本用法

数据库的基本用法: LAMP - Linux Apache MySQL PHP MySQL - 三个层次:文件层次,服务层次,界面层次. 常用的数据类型:int 整数float double decimal 小数varchar char 字符串bit bool型datetime 日期时间 建表的一般经验:分类.分层.分步1.分类:2.mn关系:1对1,1对多,多对多? 员工(员工姓名,员工性别,年龄,岗位,部门代号) 部门(部门代号,部门名称,部门主管,部门职责) 老师(代号,姓名,性别,年龄)

MySQL数据库备份--mysqldump用法

导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出.   通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表.   注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题.   mysqldump支持下列

数据库 触发器基础用法(备份删除行+删除多行)

--触发器:触发器就是一种特殊的存储过程,只用来“增删改” --触发器特殊的地方就在于,触发器是通过对数据库表的操作,来引发 --存储过程是通过人为exec来执行 select *from Student create trigger Student_Insert --创建触发器 on Student --指定触发器所在的表,还可以写成after,for和after都是在操作后执行 for Insert --当执行insert操作的时候自动执行触发器 as update Student set

ORACLE数据库操作简便函数用法

1.DISTINCT用法: SELECT   DISTINCT    A.NAME  ,  A.STUDENT_ID  ,  A.SEX   FROM TABLE STUDENT 这条SQL语句是从学生表里查询了姓名,学号,性别,但是DISTINCT的查询规则是只要有一个不同,就是符合条件的. 例: 源数据                                                                查询结果 ID    NAME    SUTDENT_ID  

Oracle数据库的基本用法

用法实例: --选取整个表的列 1. select * from emp; --选取指定列的内容 select job from emp; select ename,sal from emp; --条件判断 select sal from emp where sal=800; --between and 方法 select * from emp where sal between 2000 and 3000; --嵌套的使用 select job from (select * from emp

powerDesiner设计数据库的一些用法

数据库的设计主要有以下几个步骤: 1:需求分析:根据业务需求分析出满足客户的需求,从而建立相应的数据库 2:概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型:(entity-relationship 3:逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图: 4:物理结构设计:设计数据的存储结构和存取方法,如索引的设计: 5:生成数据库的脚本 以下是记录用powerDesinger完成这个过程的:(以 教师(Teacher) 和 学生(student)多对多的关系来创建

mysql数据库explain命令用法详解

本文转自一位前辈的文章,感觉写得很好,就转过来了.这个是那位前辈的原文地址:http://www.111cn.net/database/mysql/81698.htm 当我们在优化SQL时,想看看自己写的SQL的执行效率问题,MySql给我们提供一个命令explain,可以显示我们所写的SQL效率. 一个常见的理解错误:mysql在执行explain时不会执行sql语句,事实上如果查询的from字段有子查询,explain会执行子查询. explain只能解释select查询,对update,d

十九、CI框架之数据库操作delete用法

一.代码如下: 二.执行f访问 三.查看数据库,已经id=15的数据已经被删掉了 原文地址:https://www.cnblogs.com/tianpan2019/p/11142270.html