SQL数据库
1. 存储过程(定义&编写)
l 创建存储过程
CREATE PROCEDURE storedproc1
AS
SELECT *
from tb_project
WHERE 预计工期<= 90
ORDER BY 预计工期 DESC
GO
exec storedproc1
GO
l 修改存储过程
ALTER PROCEDURE storedproc1
AS
SELECT 项目名称,预计工期
from tb_project
WHERE 预计工期>=90
ORDER BY 预计工期 DESC
GO
exec storedproc1
GO
CREATE PROCEDURE store7
@name varchar(10),@avgpbiaodi int OUTPUT
AS
DECLARE @errorsave int
SET @errorsave=0
SELECT @avgpbiaodi=AVG(预计工期)
from tb_project AS p INNER JOIN tb_employee AS e
ON p.客户编号= e.编号
WHERE e.姓名=@name
IF(@@error<>0)
SET @errorsave=@@error
RETUREN @errorsave
GO
DECLARE @returnvalue int,@avg int
exec @returnvalue=store7 '孙小丽',@avg OUTPUT
PRINT '执行的结果'
PRINT '返回值='+CAST(@returnvalue AS char(2))
PRINT 'sun负责项目的平均工期:' +CAST(@avg AS char(10))
GO
2. EXEC &GO(使用存储过程)
l 查看存储过程
EXEC sp_helptext storedproc1
EXEC sp_depends storedproc1
EXEC sp_help storedproc1 ---在当前数据库中查找对象
实例239//////////////////////////////
USE sml
GO
CREATE VIEW 视图
AS
SELECT *
from tb_employee
WHERE 工资=600
EXEC sp_helptext '视图' --显示该对象的定义信息,对象必须在当前数据库中
USE sml
EXEC sp_depends '视图' --被检查相关行的数据库对象,对象可以是表,视图,存储过程,或触发器,对象的--数据类型为varchar(766).若一个对象引用另一个对象,则人权诶前者依赖后者,通过检查sysdepends表--确定相关性
GO
//////////////////////////////////
EXEC sp_rename'人员表','人员信息表'
EXEC sp_rename'人员信息表.电话','联系电话','COLUMN'
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
////////////////////
USE master
EXEC sp_addextendedproc xp_hello, 'xp
相关文档:
问题
当sql server启动时,我很想运行一个存储过程。有没有一种方法可以在每次SQL Server服务启动时都会自动执行这个存储过程呢?
专家解答
sql Server提供了系统存储过程sp_procoption,这个存储过程可以用于当SQL Server服务启动时指派一个或者多个存储过程自动执行。这是一个很不错的选择,它可以用于多种 ......
一、字符转换函数
1、ASCII()
返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
2、CHAR()
将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。
3、LO ......
Oracle 动态SQL返回单条结果和结果集
1. DDL 和 DML
/**//*** DDL ***/
begin
EXECUTE IMMEDIATE 'drop table temp_1';
EXECUTE IMMEDIATE 'create table temp_1(name varchar2(8))';
end;
/**//*** DML ***/
declare
v_1 varchar2(8);
& ......
(18)用EXISTS替换DISTINCT:
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT。一般可以考虑用EXIST替换, EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果。例子:
(低效):
SELECT DISTINCT DEPT_NO,DEPT_NAME  ......