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语句块中的查询服务的.
相关文档:
在sqlserver2005中用sql语句写代码,生成数据表
CREATE TABLE [t_ActivityRecord] (
[activityId] [nchar] (10) NOT NULL,
[activityName] [nvarchar] (50) NOT NULL,
[activityMark] [decimal] (18,3) NOT NULL,
[activityStatement] [ntext] NOT NULL,
[activityDateTime] [date] NOT ......
exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 & ......
使用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 ......
第一种:
select b.* from
( select a.*, rownum row_num from
(select t.* from A05_ORGANIZATION t order by org_name_en asc) a
) b
where b.row_num between 1 and 5 order by b.row_num asc
第二种(更高效):
select b.* from
( select a.*, rown ......