SQL Server 存储过程入门学习
创建存储过程之前要先用use语句声明要将存储过程存储在哪个数据库中. e.g use company; 执行之.之后就可以声明存储过程了. e.g create procedure *** @id varchar(50) , @name int output as select @name=name from table where id=@id 然后可以用alter对存储过程进行修改. declare可以声明一个变量 用set对变量赋值 e.g alter proc getempp @ID int
as
declare @Department int
select @Department=a.Department
from company.dbo.employee a
inner join company.dbo.department b
on a.Department=b.ID
where a.ID=@ID
if @@ROWCOUNT>0
begin
select *
from company.dbo.department
where ID=@Department
select * from company.dbo.employee
where Department=@Department
end
else
begin
RAISERROR('No record found',10,1)
end 上例中的@Department是被选择出来的值,然后用来为下面的if语句块中的查询服务的.
相关文档:
select *from customers
select *from orders
select customers.cust_id, orders.order_num from customers inner join orders on customers.cust_id=orders.cust_id
select customers.cust_id, orders.order_num from customers left outer join orders on customers.cust_id=orde ......
exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 & ......
–1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。
select emp_no,emp_name,dept,isnull(convert(char(10),birthday,120),’日期不详’) birthday
from employee
order by dept
–2、查找与喻自强在同一个单位的员工姓名、 ......
数据库表设计时如果设置可以为null,则它就不会变为'1900-1-01'
如果设计时不可以为null,它就会默认为: '1900-01-01'
CREATE proc UP_Rsk_AddModel @ygcode varchar(6), @name varchar(8), @xb varchar(2), @bm varchar(32), @jg varchar(16), @mz varchar(16) ......
使用Tranact-SQL 编写代码来创建一个新表:
USE [OnlineJudge]
GO
/****** Object: Table [dbo].[User1] Script Date: 05/17/2010 14:05:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[User2](/*notice convert the tablename*/
[num] [int]IDENTITY(1,1) NOT N ......