`

[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

分享到:
评论

相关推荐

    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程序设计》

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

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

    SQL Server 存储过程与实例

    对于同一个针对数据库对象的操作,如果这一操作所涉及到的T-SQL语句被组织成一存储过程,那么当在客户机上调用该存储过程时,网络中传递的只是该调用语句,否则将会是多条SQL语句。从而减轻了网络流量,降低了网络...

    触发器、事务,存储过程、视图_T-SQL语句

    SQL 2005 中触发器、事务,存储过程、视图_T-SQL语句的详细讲解课程学习PPT(含有实例和作业题)

    Transact-SQL 编程

    --T-SQL语句用于管理SQL Server数据库引擎实例,创建和管理数据库对象, --以及查询、插入、修改和删除数据。 --Ø 变量 --1、局部变量(Local Variable) --局部变量是用户可以自定义的变量,它的作用范围是仅在...

    SQL中存储过程的实例

    帮助那些想尽快学习存储过程 实例:create PROCEDURE pagination @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='', -- 排序的字段名 @PageSize int...

    SQL Server 数据库技术---基础篇、数据库安全、SQL开发、数据库性能优化

    SQL Server 数据库技术---基础篇(T-SQL基础、数据库几本操作、SQL Server 2008新特性)、数据库安全(SQL Server 2008 安全数据文件安全与灾难恢复、 复制)、SQL开发(数据库设计、SQL Server与CLR集成、在SQL ...

    存储过程和触发器作用与实例

    在SQL Server 2005中,使用T-SQL语句编写存储过程。存储过程可以接受输入参数、返回表格或标量结果和消息,调用“数据定义语言(DDL)”和“数据操作语言(DML)”语句,然后返回输出参数。使用存储过程的优点如下:...

    SQL学习与实例指导

    SQL的实验指导,包括了数据库创建与删除,数据库表的创建和修改,简单查询,多表查询,数据库更新操作,T-SQL编程,存储过程和触发器,数据库完整性和安全性,不同数据源的数据导入和导出数据库,数据库的备份与还原...

    SQL Server 2008中文版关系数据库基础与实践教程.z01

    报表服务、分析服务和集成服务,然后讲解了如何利用索引、视图、函数、存储过程、游标及触发器来管 理和提高T-SQL的查询和操作功能,还讲解了通过ASP.NET和Visual C#2008访问SQL Server 2008数据库 的方法与技巧,...

    SQL Server 2008中文版关系数据库基础与实践教程.zip

    报表服务、分析服务和集成服务,然后讲解了如何利用索引、视图、函数、存储过程、游标及触发器来管 理和提高T-SQL的查询和操作功能,还讲解了通过ASP.NET和Visual C#2008访问SQL Server 2008数据库 的方法与技巧,...

    LINQ_to_SQL语法及实例大全

    LINQ to SQL语句(20)之存储过程 63 1.标量返回 63 2.单一结 果集 64 3.多个可 能形状的单一结果集 65 4.多个结果集 70 5.带输出参数 79 LINQ to SQL语句(21)之用户定义函数 80 1.在Select中使用用户定义的标量函数 ...

    SQL Server 2008管理员必备指南(超高清PDF)Part2

    《SQL Server 2008管理员必备指南》的特点是按照日常工作的逻辑来编排内容,并含有大量实例操作指导、技巧提示及T-SQL代码,方便管理员日常的工作。 《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,...

    MicrosoftSQlServer2005 技术内幕

    本书对SQL Server 2005存储引擎方面的知识进行了全面而详细的阐述,包括数据库文件、日志和恢复、表、索引及其管理、锁定和并发等内容。除了解释设计理念与运作原理外,书中还辅之以大量简短而有力的实例。您将跟随...

    sql存储过程实例–动态根据表数据复制一个表的数据到另一个表

    创建一个 sub_track的存储过程实现: -- 创建一个 名为sub_track的存储过程 CREATE PROCEDURE sub_track() begin declare i int; -- 定义 循环变量i set @imei =0; -- 定义imei最后两位 set @t_count=0; -- 定义...

    SQL Server 数据库管理常用的SQL和T-SQL语句

     查看数据库启动时间 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看数据库服务器名和实例名 print ”Server Name……………: ” + convert(varchar(30),@...

    SQL语句集锦.rar

    有关树的运用和存储过程.t 有关连接的查询语句.txt 末公开的存储过程.txt 极品分组排列进行行转列例 查询 时间1.txt 查询替换字符串.sql 模糊查寻.txt 类似于树查询.txt 练习.txt 获得数据库中表字段的...

    SQL语法大全 学习笔记

    SQL 语法大全 1 基础知识 2 数据库操作 3 表的操作 4 数据完整性 5 数据查询 6 视图和索引 7 T-SQL 8 存储过程和触发 9 实例练习

    SQL Server 2008高级程序设计 2/6

     8.3 使用T-SQL编辑视图  8.4 删除视图  8.5 审核:显示现有代码  8.6 保护代码:加密视图  8.7 关于模式绑定  8.8 使用VIEW METADATA使自己的视图看起来像一个表  8.9 索引(物化)视图  8.10 分区...

    SQLServer2000邹建开发实例脚本

    csdn sql server版块超级大版主的开发实例,共15章,包括安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原。

Global site tag (gtag.js) - Google Analytics