`

[T-SQL][存储过程实例]

    博客分类:
  • SQL
 
阅读更多
USE [SchoolDB]
GO
/****** 对象:  Table [dbo].[WZOU_SysPermission]    脚本日期: 10/28/2014 11:05:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WZOU_SysPermission](
	[TeacherId] [nchar](8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
	[Specialty] [nvarchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
	[ClassName] [nvarchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
	[Permission] [bigint] NOT NULL,
	[Remark] [nvarchar](512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
 CONSTRAINT [PK_WZOU_SysPermission] PRIMARY KEY CLUSTERED 
(
	[TeacherId] ASC,
	[Specialty] ASC,
	[ClassName] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'教师编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WZOU_SysPermission', @level2type=N'COLUMN',@level2name=N'TeacherId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'专业(字典库 DicType=05)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WZOU_SysPermission', @level2type=N'COLUMN',@level2name=N'Specialty'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'班级(字典库 DicType=07)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WZOU_SysPermission', @level2type=N'COLUMN',@level2name=N'ClassName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'权限字段' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WZOU_SysPermission', @level2type=N'COLUMN',@level2name=N'Permission'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WZOU_SysPermission', @level2type=N'COLUMN',@level2name=N'Remark'


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATEPROCEDURE [dbo].[UpdateSysPermission]
	-- Add the parameters for the stored procedure here
( 
    @TeacherId nchar(8),
    @Specialty nvarchar(16),
    @ClassName nvarchar(16),
    @Permission bigint,
    @Remark nvarchar(512) = ''
)
AS
BEGIN
    DECLARE @StrSQL NVARCHAR(2000)
	DECLARE @Count int

	SELECT @Count=count(*) FROM WZOU_SysPermission WHERE TeacherId=@TeacherId AND Specialty=@Specialty AND ClassName=@ClassName 
    SET @StrSQL = 'SELECT * FROM WZOU_SysPermission WHERE TeacherId = N''' + @TeacherId + ' AND Specialty = N'''+ @Specialty +' AND ClassName = N''' + @ClassName 

    PRINT(@Count)

    IF EXISTS(SELECT * FROM WZOU_SysPermission WHERE TeacherId=@TeacherId AND Specialty=@Specialty AND ClassName=@ClassName)
        BEGIN
			PRINT(@StrSQL)
        END    

	IF (@Count = 0)
		BEGIN
           SET @StrSQL = 'INSERT INTO WZOU_SysPermission (TeacherId, Specialty, ClassName, Permission, Remark) VALUES(N''' + @TeacherId + ''', N''' + @Specialty + ''', N''' + @ClassName + ''', ' + convert(nvarchar,@Permission) + ', N''' + @Remark + ''')'
        END
    ELSE
         BEGIN
           SET @StrSQL = 'UPDATE WZOU_SysPermission SET Permission = ' + convert(nvarchar,@Permission) + ', Remark = N''' + @Remark + ''' WHERE (TeacherId = N''' + @TeacherId + ''' AND Specialty = N''' + @Specialty + ''' AND ClassName = N''' + @ClassName + ''')'
        END

    PRINT(@StrSQL) 
    EXEC(@StrSQL)
END




//测试
UpdateSysPermission @TeacherId='00000000',@Specialty=N'会计',@ClassName=N'1班',@Permission= 3

分享到:
评论

相关推荐

    T-SQL示例大全(全是T-SQL语句 )

    2. 存储过程:存储过程是一组预先编译好的T-SQL语句,可以接受参数,返回值,甚至可以包含事务处理。创建存储过程的SQL语句是`CREATE PROCEDURE 存储过程名 AS BEGIN...END`,调用存储过程使用`EXEC 存储过程名 ...

    论坛T-SQL语句实例 简单易懂 建库建表建约束等

    此外,T-SQL还支持存储过程(Stored Procedures)、触发器(Triggers)和事务(Transactions)等高级功能,它们极大地增强了数据库的灵活性和可编程性。学习T-SQL不仅有助于理解数据库的基本操作,也是进一步深入...

    T-sql简单实用实例

    本篇将通过五个具体的文件实例来深入理解T-SQL的一些基本和实用功能。 首先,我们来看"while循环.sql"。在编程中,循环是一种重复执行某段代码直到满足特定条件的结构。在T-SQL中,`WHILE`循环用于在满足条件时反复...

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    T-SQL是SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及数据库管理等任务。这本书的源代码及附录内容提供了丰富的实例和详尽的解释,帮助读者深化对T-SQL的理解和应用。 1. **T-SQL查询...

    T-SQL实用语句实例

    以上只是T-SQL基础知识的冰山一角,实际应用中还包括事务处理、存储过程、触发器、索引、游标等更多高级概念。通过深入理解和实践这些实例,你将能更好地掌握T-SQL,为在SQL Server环境下进行数据操作打下坚实基础。

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    存储过程是预先编译并存储在数据库中的一个或多个T-SQL语句,可以被客户端程序通过名称调用执行。触发器是一种特殊类型的存储过程,它会在数据表上发生数据修改事件(如INSERT、UPDATE或DELETE)时自动执行。 十、...

    《T-SQL 2008 入门》[PDF]

    在T-SQL的进阶部分,读者将接触到存储过程和函数的创建与调用,这在实际开发中非常常用。存储过程可以封装复杂的逻辑,提高代码复用性,而函数则能返回单一值,便于在查询中使用。此外,触发器的概念也会被讲解,它...

    T-SQL学习资料(CSDN下载)集合

    2. 存储过程(PROCEDURE):T-SQL支持创建和调用存储过程,这是一种预编译的SQL代码集合,可以提高性能,简化复杂的操作,并提供安全性。 3. 触发器(TRIGGER):在数据库中定义特定事件(如INSERT、UPDATE或DELETE...

    SQL SERVER 2008 T-SQL 基础

    T-SQL是SQL Server的核心组件,用于数据查询、数据操纵、存储过程编写以及数据库对象的创建和管理。以下将详细介绍T-SQL在SQL Server 2008中的应用和关键知识点。 1. **数据查询**:T-SQL提供了SELECT语句,用于从...

    sql server 2005 技术内幕t-sql查询源码

    5. **变量与存储过程**:介绍如何声明和使用变量,以及创建和调用存储过程,理解存储过程的优势和使用场景。 6. **触发器与函数**:讨论触发器(TRIGGER)的原理和应用,以及用户自定义函数(UDF),包括标量函数和...

    Microsoft SQL Server 2005技术内幕:查询与优化 存储引擎 T-SQL查询 T-SQL程序设计

    包括了《Microsoft SQL Server 2005技术内幕》四本书...《Microsoft SQL Server 2005技术内幕:存储引擎》 《Microsoft SQL Server 2005技术内幕:T-SQL查询 》 《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》

    Microsoft SQL Server 2012 T-SQL

    存储过程是一组预编译的T-SQL语句,可以接受参数,执行复杂操作,并提高安全性。 9. **游标**:虽然在SQL Server中推荐使用集束操作,但T-SQL仍然提供了游标,允许逐行处理查询结果。 10. **窗口函数**:SQL ...

    t-sql基础教程

    5. **存储过程**:存储过程是预编译的T-SQL语句集合,可重复使用,提高性能,减少网络流量。通过`CREATE PROCEDURE`定义,`EXEC`执行。 6. **触发器**:触发器是一种特殊类型的存储过程,会在特定的数据操作(如...

    T-SQL语言存储过程练习题

    存储过程教学资料(含无输入参数、输入参数、输出参数等存储过程教学实例)方便练习!

    T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)配书资源

    2. **T-SQL扩展**:T-SQL在SQL的基础上增加了事务控制、存储过程、触发器、游标、变量和流程控制语句(如IF-ELSE、WHILE等)。这些内容对于编写复杂的数据库逻辑至关重要。 3. **函数与聚合函数**:书中可能会详细...

    MicroSoft Sql Server2005:T-Sql查询

    SQL Server 2005是Microsoft公司推出的一款强大且广泛使用的数据库管理系统,它为开发者提供了丰富的功能和工具,特别是其Transact-SQL(T-SQL)语言,是进行数据查询、操作、分析和存储过程编程的主要工具。...

    sql应用的全部示例介绍t-sql

    本篇将深入探讨T-SQL在SQL应用中的各个方面,通过实例来帮助你理解和掌握这个强大的数据库语言。 一、T-SQL基础操作 1. 查询数据:使用`SELECT`语句从表中检索数据。例如,`SELECT * FROM Customers`将返回...

    sybase T-SQL命令

    T-SQL是用于创建、操作和管理数据库的关键工具,包括数据查询、数据更新、事务处理、存储过程编写等。 1. **数据查询**: - `SELECT`语句:这是最基础的查询语句,用于从一个或多个表中检索数据。你可以使用`WHERE...

    SQL数据库学习课件及T-SQL语句视频教程

    SQL还支持数据库对象如表、视图、索引和存储过程的管理。 接着,我们探讨SQL的数据模型和数据库设计。关系数据模型是SQL最常使用的模型,它基于实体、属性和关系的概念。在设计数据库时,遵循正常化原则至关重要,...

    T-SQL示例大全.rar_sql_t-sql_windows sql

    《T-SQL示例大全》是一个综合性的资源集合,涵盖了SQL语言中的Transact-SQL(T-SQL)的大量实例,适用于在Windows环境下使用SQL Server数据库管理系统进行开发和管理的人员。T-SQL是Microsoft SQL Server所扩展的...

Global site tag (gtag.js) - Google Analytics