在sql查询中使用表变量

 更新时间:2010年06月21日 12:07:50   作者:  
在sql查询中使用表变量,需要的朋友可以参考下。
复制代码 代码如下:

USE [DAF_DB]
GO
/****** Object: StoredProcedure [dbo].[PROG_WORKTASK_List] Script Date: 06/14/2010 21:14:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[PROG_WORKTASK_List] 62,0,'','',0,0,'',''

-- =============================================
-- Author: guo.lin
-- Create date: 2010-03-10
-- Description: 获取工作任务单列表,根据相关条件
-- =============================================
ALTER PROCEDURE [dbo].[PROG_WORKTASK_List]
@userID varchar(10), ---当前用户
@status int, ---状态
@Leader varchar(30),
@Facilitators varchar(30),
@Level int ,
@Priority int,
@CloseDT varchar(30),
@CreatedBy varchar(30)

AS
BEGIN
declare @result table(
taskid int,
TaskName nvarchar(100),
TaskTopic nvarchar(100),
Level varchar(10),
Priority varchar(10),
Status varchar(10),
Leader varchar(100),
strLeader nvarchar(500),
Facilitators varchar(100),
cycletime varchar(10),
CloseDT datetime,
Createddt datetime,
CreatedBy varchar(30)
)

insert into @result select taskid,TaskName,TaskTopic,Level,Priority,Status,Leader,strLeader,Facilitators,cycletime,CloseDT,Createddt,CreatedBy
from Work_TaskProcess where createdby=@CreatedBy or leader like '%|'+@userid+'|%' or Facilitators like '%|'+@userid+'|%'

if (@status <>0)
delete @result where status<>@status
if (@Leader<>'')
delete @result where leader not like '%|'+@Leader+'|%'
-- if (@CreatedBy<>'')
-- delete @result where CreatedBy<>@CreatedBy
if (@Level <> 0)
delete @result where level<>@level
if (@Priority <> 0)
delete @result where Priority<>@Priority
if (@CloseDT<>'')
delete @result where CloseDT<>@CloseDT

update @result set status=b.itemtext from @result a,DAF_Item b where a.Status=b.itemvalue and b.itemtype='worktaskStatus'
update @result set Level=b.itemtext from @result a,DAF_Item b where a.Level=b.itemvalue and b.itemtype='worktaskLevel'
update @result set Priority=b.itemtext from @result a,DAF_Item b where a.Priority=b.itemvalue and b.itemtype='worktaskPriority'
update @result set createdby=b.username from @result a, DAF_useraccount b where a.createdBy=b.userid
update @result set cycletime=cycletime+'天'


select taskid,TaskName,TaskTopic,Level,Priority,Status,strLeader,Facilitators,cycletime,CloseDT,Createddt,CreatedBy from @result order by Createddt desc

END

相关文章

  • SQLServer中IF THEN逻辑的实现

    SQLServer中IF THEN逻辑的实现

    if-then语句是IF控制语句中最简单的形式,经常用于决策和更改程序执行的控制流程,本文主要介绍了SQLServer中IF THEN逻辑的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • SQL SERVER 查询正在实行的SQL语句

    SQL SERVER 查询正在实行的SQL语句

    SQL SERVER 查询正在实行的SQL语句的实现代码
    2009-06-06
  • 利用ROW_NUMBER() OVER函数给SQL数据库中每一条记录分配行号的方法

    利用ROW_NUMBER() OVER函数给SQL数据库中每一条记录分配行号的方法

    这篇文章主要介绍了利用ROW_NUMBER() OVER函数给SQL数据库中每一条记录分配行号的方法,需要的朋友可以参考下
    2015-10-10
  • SQL Server下7种“数据分页”方案全网最新最全

    SQL Server下7种“数据分页”方案全网最新最全

    这篇文章主要介绍了SQL Server下7种“数据分页”方案,全网最全,本文下面重点阐述上述【第二种】方案在SQL Server上的使用(其它种类数据库由于Sql语句略有差异,所以需要调整,但方案也类似),需要的朋友可以参考下
    2023-01-01
  • 存储过程实现(可带查询条件/万能分页/通用)

    存储过程实现(可带查询条件/万能分页/通用)

    可带查询条件的SQL语句的分页存储过程,在项目开发中很实用,感兴趣的朋友可以了解下,希望本文可以巩固你的存储过程的相关知识
    2013-01-01
  • sql 批量修改数据库表

    sql 批量修改数据库表

    通过sysobjects和syscolumns系统表,找到每个表的每个列,如果列类型是字符串类型的,比如varchar、nvarchar等,利用游标,对这些列进行更新。
    2009-01-01
  • SQL SERVER提交事务回滚机制

    SQL SERVER提交事务回滚机制

    这篇文章主要介绍了SQL SERVER提交事务回滚机制,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 一文教会你在sqlserver中创建表

    一文教会你在sqlserver中创建表

    在使用SQL server新建数据库后,接下来我们就需要新建表了,下面这篇文章主要给大家介绍了关于在sqlserver中创建表的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • mssql查找备注(text,ntext)类型字段为空的方法

    mssql查找备注(text,ntext)类型字段为空的方法

    在sql语句中,如果查找某个文本字段值为空的,可以用select * from 表 where 字段='' ,但是如果这个字段数据类型是text或者ntext,那上面的sql语句就要出错了。
    2008-08-08
  • SqlServer给表增加多个字段的语法

    SqlServer给表增加多个字段的语法

    这篇文章主要介绍了SqlServer给表增加多个字段的语法,添加字段的语法非常简单,需要的朋友参考下本文吧
    2017-09-09

最新评论