SQL - 基础

1.声明变量 
DECLARE @F001 SMALLINT,
    
          @F002 INTEGER,
    
          @F003 VARCHAR(20),
              
@F004 CHAR(20),
    
          @F002 MONEY

2.赋值语句 
set @F001 = space(40)

3.条件判断(IF...ELSE) 
If condition Begin
    
[ statements  ]
END
ELSE BEGIN
    
[ elseifstatements ]
END

4.多分支判断(case...when...then...else...end)
SET @F011 =
CASE
        
WHEN [testexpression1] THEN  @F001
        
WHEN [testexpression2] THEN  @F002
        
WHEN [testexpression3] THEN  @F003
        
WHEN [testexpression4] THEN  @F004
END

5.循环(while) 
While condition Begin
   
[ statements ]
End

6.动态定义游标 
SET @strSQL = ' DECLARE  name_cursor  CURSOR  FOR  ' + @inSQL
EXEC  (@strSQL)

7.遍历游标
FETCH NEXT FROM name_cursor into @F001,@F002
WHILE  @@FETCH_STATUS = 0 BEGIN

       
FETCH NEXT FROM name_cursor into @F001,@F002

END
说明:FETCH_STATUS检索到数据返回0,失败返回-1,可判断是否滚动未到结尾。

8.获得游标行数
SET @RECCNT = @@ROWCOUNT

9.事务处理
BEGIN distributed transaction

WHILE @@TRANCOUNT > 0
       
commit transaction

10.字符串连接
SET @m_sql = @m_sql + ' Where F001 = ''' + @F001 + ''''
SET @m_sql = @m_sql + ' F002 = ' + CONVERT(varchar,@F002)

11.创建临时表存储外部数据表
说明:临时过程用 # 和 ## 命名,可以由任何用户创建。创建过程后,局部过程的所有者是唯一可以使用该过程的用户。
CREATE TABLE #DMPARHED
(FMCD   
int,
FMNAM  
varchar(50),
MGYO1  
smallint,
constraint DMPARHED_P primary key (FMCD))
SET @aSQL = ''
SET @aSQL = @aSQL + 'INSERT INTO #DMPARHED'
SET @aSQL = @aSQL + ' SELECT FMCD,FMNAM,MGYO1 FROM'
SET @aSQL = @aSQL + ' OPENQUERY(Lk_MDB_NEO32, ''SELECT FMCD,FMNAM,MGYO1 FROM DMPARHED'
SET @aSQL = @aSQL + ' WHERE SYSNO = 1'')'
execute(@aSQL)

创建临时表的另类方法: 
select a.name,a.password from
with
as temp1
select * from emp
(
select * from temp1
union
select * from temp1) a
where a.name='hao'

12.存储过程的调用及返回值
(1)存储过程的声明 
CREATE PROCEDURE name_produce
    
@F001  VARCHAR(20),
           
@F002  SMALLINT OUTPUT
CREATE PROCEDURE dbo.getUserName
@UserID int,
@UserName varchar(40) output
as
set nocount on
begin
if @UserID is null return
select @UserName=username
from dbo.[userinfo]
where userid=@UserID
return
end
posted @ 2009-08-28 09:54  ________囧丶殇  阅读(177)  评论(0编辑  收藏  举报