我现在有一个应用程序,它具有硬连线到可执行文件中的特殊用户角色。它是防篡改的,但在涉及新员工、角色变更等时有点混乱。
所以,我想创建一个存储过程,它可以为任何给定的操作返回适当的员工徽章编号。
我的专长是 C# 开发,但我也是 SQL Server (2000) 数据库的工作人员。
这是我开始的,但 T-SQL 根本不喜欢这个!
CREATE PROCEDURE sp1_GetApprovalBadges(@operation varchar(50)) as
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
declare @op varchar(50);
declare @num varchar(50);
declare @table table (NUM varchar(50) null);
select @op=upper(@operation);
case
when @op='CLERK' then
insert into @table (NUM) values (@num) where @num in ('000988','001508','003790','007912') end
when @op='HRMANAGER' then
insert into @table (NUM) values (@num) where @num in ('003035') end
when @op='HUMANRESOURCES' then
insert into @table (NUM) values (@num) where @num in ('002864','005491') end
when @op='INFORMATIONTECHNOLOGY' then
insert into @table (NUM) values (@num) where @num in ('001258','003423','007135','007546') end
end;
SELECT NUM from @table order by NUM;
END
GO
我意识到这与我编写的代码非常相似,并且与数据库无关,但是拥有数据库为我提供了一种存储和执行一些脚本的好方法,我可以根据需要修改这些脚本以保持我的应用程序正常工作。