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
分享到:
相关推荐
2. 存储过程:存储过程是一组预先编译好的T-SQL语句,可以接受参数,返回值,甚至可以包含事务处理。创建存储过程的SQL语句是`CREATE PROCEDURE 存储过程名 AS BEGIN...END`,调用存储过程使用`EXEC 存储过程名 ...
此外,T-SQL还支持存储过程(Stored Procedures)、触发器(Triggers)和事务(Transactions)等高级功能,它们极大地增强了数据库的灵活性和可编程性。学习T-SQL不仅有助于理解数据库的基本操作,也是进一步深入...
本篇将通过五个具体的文件实例来深入理解T-SQL的一些基本和实用功能。 首先,我们来看"while循环.sql"。在编程中,循环是一种重复执行某段代码直到满足特定条件的结构。在T-SQL中,`WHILE`循环用于在满足条件时反复...
T-SQL是SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及数据库管理等任务。这本书的源代码及附录内容提供了丰富的实例和详尽的解释,帮助读者深化对T-SQL的理解和应用。 1. **T-SQL查询...
以上只是T-SQL基础知识的冰山一角,实际应用中还包括事务处理、存储过程、触发器、索引、游标等更多高级概念。通过深入理解和实践这些实例,你将能更好地掌握T-SQL,为在SQL Server环境下进行数据操作打下坚实基础。
存储过程是预先编译并存储在数据库中的一个或多个T-SQL语句,可以被客户端程序通过名称调用执行。触发器是一种特殊类型的存储过程,它会在数据表上发生数据修改事件(如INSERT、UPDATE或DELETE)时自动执行。 十、...
在T-SQL的进阶部分,读者将接触到存储过程和函数的创建与调用,这在实际开发中非常常用。存储过程可以封装复杂的逻辑,提高代码复用性,而函数则能返回单一值,便于在查询中使用。此外,触发器的概念也会被讲解,它...
2. 存储过程(PROCEDURE):T-SQL支持创建和调用存储过程,这是一种预编译的SQL代码集合,可以提高性能,简化复杂的操作,并提供安全性。 3. 触发器(TRIGGER):在数据库中定义特定事件(如INSERT、UPDATE或DELETE...
T-SQL是SQL Server的核心组件,用于数据查询、数据操纵、存储过程编写以及数据库对象的创建和管理。以下将详细介绍T-SQL在SQL Server 2008中的应用和关键知识点。 1. **数据查询**:T-SQL提供了SELECT语句,用于从...
5. **变量与存储过程**:介绍如何声明和使用变量,以及创建和调用存储过程,理解存储过程的优势和使用场景。 6. **触发器与函数**:讨论触发器(TRIGGER)的原理和应用,以及用户自定义函数(UDF),包括标量函数和...
包括了《Microsoft SQL Server 2005技术内幕》四本书...《Microsoft SQL Server 2005技术内幕:存储引擎》 《Microsoft SQL Server 2005技术内幕:T-SQL查询 》 《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》
存储过程是一组预编译的T-SQL语句,可以接受参数,执行复杂操作,并提高安全性。 9. **游标**:虽然在SQL Server中推荐使用集束操作,但T-SQL仍然提供了游标,允许逐行处理查询结果。 10. **窗口函数**:SQL ...
5. **存储过程**:存储过程是预编译的T-SQL语句集合,可重复使用,提高性能,减少网络流量。通过`CREATE PROCEDURE`定义,`EXEC`执行。 6. **触发器**:触发器是一种特殊类型的存储过程,会在特定的数据操作(如...
存储过程教学资料(含无输入参数、输入参数、输出参数等存储过程教学实例)方便练习!
2. **T-SQL扩展**:T-SQL在SQL的基础上增加了事务控制、存储过程、触发器、游标、变量和流程控制语句(如IF-ELSE、WHILE等)。这些内容对于编写复杂的数据库逻辑至关重要。 3. **函数与聚合函数**:书中可能会详细...
SQL Server 2005是Microsoft公司推出的一款强大且广泛使用的数据库管理系统,它为开发者提供了丰富的功能和工具,特别是其Transact-SQL(T-SQL)语言,是进行数据查询、操作、分析和存储过程编程的主要工具。...
本篇将深入探讨T-SQL在SQL应用中的各个方面,通过实例来帮助你理解和掌握这个强大的数据库语言。 一、T-SQL基础操作 1. 查询数据:使用`SELECT`语句从表中检索数据。例如,`SELECT * FROM Customers`将返回...
T-SQL是用于创建、操作和管理数据库的关键工具,包括数据查询、数据更新、事务处理、存储过程编写等。 1. **数据查询**: - `SELECT`语句:这是最基础的查询语句,用于从一个或多个表中检索数据。你可以使用`WHERE...
SQL还支持数据库对象如表、视图、索引和存储过程的管理。 接着,我们探讨SQL的数据模型和数据库设计。关系数据模型是SQL最常使用的模型,它基于实体、属性和关系的概念。在设计数据库时,遵循正常化原则至关重要,...
《T-SQL示例大全》是一个综合性的资源集合,涵盖了SQL语言中的Transact-SQL(T-SQL)的大量实例,适用于在Windows环境下使用SQL Server数据库管理系统进行开发和管理的人员。T-SQL是Microsoft SQL Server所扩展的...