1、首先需要打开SQL Server Managment管理工具,新建一个表。
‘贰’ 创建一个存储过程,实现向表students_basicinformation插入一个新同学信息
①首先建表:
create table students_basicinformation
(
id char(2) not null,
name varchar2(8) not null,
sex char(2) not null
)
②创建存储过程:
CREATE OR REPLACE PROCEDURE procStudentInformationInsert(user_id IN CHAR,
user_id IN VARCHAR2,
user_sex IN CHAR,
user_count OUT NUMBER) IS
BEGIN
--查询用户是否存在
SELECT COUNT(1) user_count
FROM students_basicinformation
WHERE id = user_id;
--如果不存在,新增一条记录
IF user_count = 0 THEN
INSERT INTO students_basicinformation
(id, name, sex)
VALUES
(user_id, user_id, user_sex);
END IF;
END procStudentInformationInsert;
‘叁’ 如何用存储过程及SQL代码创建登录,用户和角色
首先理解什么是登录,什么是用户,什么是角色:
登录:SQL Server2005中,有两种创建登录的方式:一种是Windows验证登录;另一种是SQL Server身份验证方式。“登录方式”就好比办公楼上使用不同类型的锁,一旦选择了使用什么类型的锁,就可以开始为每位员工配发钥匙,而这个钥匙就是“登录”。或称“登录名”,但员工只有进入大楼的权利,但却没有权限查看和使用里面的资源(比如档案柜)。如果是sysadmin或securityadmin固定服务器角色的成员,则可以创建两种类型的登录之一:标准登录(比如前面比喻中的金属钥匙)和Windows登录(比如较新型的电子出入卡)。
用户:既然员工拥有了进入大楼的钥匙,就应该拥有适当的管理性访问权,他们需要通过访问其他资源来完成工作。例如,如果打算允许财务部访问账目文件,就需要给他们一把文件柜的钥匙。员工现在有两把钥匙:一把是打开大门的钥匙,一把是打开文件柜的钥匙。
同样,一旦用户已登录到了SQL Server上,就需要允许用户访问数据库。为此,需要创建数据库用户账户,然后给这些用户账户授予权限。一旦这个过程结束,SQL Server用户就拥有了多把钥匙:一把打开大门的钥匙(登录),以及一把打开他们需要访问的每个文件柜(数据库)的钥匙。
角色:会计需要签发公司支票,这个权限可以用两种方式之一来授予。第一,可以给每名会计分别提供一本从同一账户中支取的支票簿,并授予从该支票簿中开支票的权限。在这种情况下,需要设法跟踪当月已经开出的全部支票,否则这种方法可能会造成可怕的后果。完成这项工作的最佳方法是让整个公司账户只使用一本支票簿,并给所有会计授予从这本支票簿中开支票的一个组权限。
在SQL Server中,当几个用户需要访问数据库的权限时,比较容易的方法是将所有的权限作为一个组授给他们,而不是设法分别管理每个用户。
言归正传,先用存储过程实现以上操作:
创建新登录具体语法请参考MSDN文档
--创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。
EXEC sp_addlogin 'newlogin','123456','master'
--创建用户
--创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。
EXEC sp_adser 'newlogin'
--创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。
EXEC sp_adser 'newlogin','newuser'
--创建角色
EXEC sp_addrole 'newrole'
--下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。
EXEC sp_adser 'newlogin','newuser','newrole'
--为角色newrole赋予jobs表的所有权限
GRANT ALL ON jobs TO newrole
--为角色newrole赋予sales表的查、改权限
GRANT SELECT,UPDATE ON sales TO newrole
--禁止角色newrole使用employees表的插入权限
DENY INSERT ON employees TO newrole
另一种创建用户和赋予角色的方式
--为登录newlogin在数据库中添加安全账户newuser
EXEC sp_grantdbaccess 'newlogin,'newuser'
--添加newuser为角色newrole的成员
EXEC sp_addrolemember 'newrole','newuser'
--数据库用户、角色、登录的删除操作
--删除当前数据库用户
EXEC sp_revokedbaccess 'newuser';
--删除数据库登录
EXEC sp_droplogin 'newlogin'
--删除数据库角色
EXEC sp_droprole 'newrole'
--从数据库角色(newrole)中删除用户(newuser)
EXEC sp_droprolemember 'newrole', 'newuser'
--用SQL代码新建登录、用户
--创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。
CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
--创建映射到凭据的登录名。
--以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。
CREATE LOGIN mylogin WITH PASSWORD = '123456',
CREDENTIAL = mycredential;
--从Windows 域帐户创建登录名
--如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。
CREATE LOGIN [jack/xiangzhao] FROM WINDOWS;
--如果指定用户名,则不使用默认登录名作为该数据库用户
CREATE USER myuser FOR LOGIN mylogin
--以下示例将创建用户myuser拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION myuser;
--以下示例将创建db_role固定数据库角色拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION db_role;
‘肆’ 如何在asa数据库中创建用户存储过程
扩展名是asa的数据库应该是access数据库文件,
然access是不支持存储过程的,如果要用存储过程,需要用mssql2000或更新的版本、mysql5、oracle等。
‘伍’ 怎样用oracle建立一个创建账户的存储过程
我说下具体流程
登陆进去后竖行有:例程,方案,安全性之类的
你选方案进去
如果给你没有提供相应的方案名称,就自己建立一个方案
建立完成后,点开你的方案,会有表,索引之类的
右键表,点击新建,哦了,后面的你就会了
‘陆’ 建立一个存储过程,完成添加班级信息的功能,使用IN 参数完成存储过程。
CREATE PROCEDURE SP_Student
/**提交班级信息**/
@StudentName VARCHAR(50),--班级名称
@StudentID ID--班级编号
AS
BEGIN
Insert into Student(StudentName,StudentID)
values(@StudentName,@StudentID)
END
‘柒’ 创建一个存储过程ProInst,用于在Client表中插入一条顾客信息
create proc ProInst
(
@userid int, --用户ID
@username varchar(50), --用户姓名
@price int, --消费价格
@time datetime --消费时间
)
as
--insert into 表名(字段,字段)values(你要插入的参数)
--‘@名称’这表示你所创建的参数,可以表示你所要插入的值
insert into client (name,id,price,time)values(@userid,@username,@price,@time)
‘捌’ 怎样创建存储过程用来插入用户指定人数的多个数据
根据传递的参数,你只要限制好传递给存储过程的参数,是你想要的数据。
在存储过程中做插入操作。就可以了。
‘玖’ orcal数据库编写一个存储过程,向客户表中增加一个新的客户信息
序列:
create sequence SEQ_CLIENT
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
存储过程:
create or replace createNewClient()
as
begin
insert into client(id,clientname) values (SEQ_CLIENT.Nextval,'张三'); --字段自己添加
end;
‘拾’ MSQ创建存储过程,初级MSQ大佬求助
1系统存储过程
以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。
2本地存储过程
用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。
3临时存储过程
分为两种存储过程:
一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;
二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4远程存储过程
在SQL Server2005中,远程存储过程(Remote Stored Proceres)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5扩展存储过程
扩展存储过程(Extended Stored Proceres)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。
基本语法
创建存储过程
create procere sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
以上格式还可以简写成:
create proc sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
/*注:"sp_name"为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/
调用存储过程
1.基本语法:exec sp_name [参数名]
删除存储过程
1.基本语法:
drop procere sp_name
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
其他常用命令
1.show procere status
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procere sp_name
显示某一个mysql存储过程的详细信息
3、exec sp_helptext sp_name
显示你这个sp_name这个对象创建文本。