SQL SERVER 存储过程基础集
来源:互联网 发布:java math方法 编辑:程序博客网 时间:2024/05/26 07:27
1.声明变量 DECLARE @F001 SMALLINT, @F002 INTEGER, @F003 VARCHAR(20), @F004 CHAR(20), @F002 MONEY2.赋值语句 set @F001 = space(40)3.条件判断(IF...ELSE) If condition Begin [ statements ]ENDELSE BEGIN [ elseifstatements ]END4.多分支判断(case...when...then...else...end)SET @F011 =CASE WHEN [testexpression1] THEN @F001 WHEN [testexpression2] THEN @F002 WHEN [testexpression3] THEN @F003 WHEN [testexpression4] THEN @F004END5.循环(while) While condition Begin [ statements ]End6.动态定义游标 SET @strSQL = '' DECLARE name_cursor CURSOR FOR '' + @inSQLEXEC (@strSQL)7.遍历游标FETCH NEXT FROM name_cursor into @F001,@F002WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM name_cursor into @F001,@F002END说明:FETCH_STATUS检索到数据返回0,失败返回-1,可判断是否滚动未到结尾。8.获得游标行数SET @RECCNT = @@ROWCOUNT9.事务处理BEGIN distributed transactionWHILE @@TRANCOUNT > 0 commit transaction10.字符串连接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 fromwithas temp1select * from emp(select * from temp1unionselect * from temp1) awhere a.name=''hao''; 12.存储过程的调用及返回值(1)存储过程的声明 CREATE PROCEDURE name_produce @F001 VARCHAR(20), @F002 SMALLINT OUTPUT(2)VB.NET调用存储过程 Private SqlCmd As New OleDb.OleDbCommandSqlCmd.CommandText = "prNK3020SC03"SqlCmd.CommandType = CommandType.StoredProcedureDim parampre1 As OleDb.OleDbParameter = SqlCmd.Parameters.Add( _ New OleDb.OleDbParameter("@F001", OleDb.OleDbType.VarChar, 20, _ ParameterDirection.Input))Dim parampre2 As OleDb.OleDbParameter = SqlCmd.Parameters.Add( _ New OleDb.OleDbParameter("@F002", OleDb.OleDbType.SmallInt))parampre2.Direction = ParameterDirection.OutputSqlCmd.Parameters("@F001").Value = aF001SqlCmd.Parameters("@F002").Value = aF002SqlCmd.ExecuteNonQuery()aF002 = SqlCmd.Parameters("@F002").Value.ToString()(3)存储过程调用存储过程 DECLARE @C001 VARCHAR(20), @C002 SMALLINTEXEC name_produce @C001,@C002 outputCREATE PROCEDURE dbo.getUserName@UserID int,@UserName varchar(40) outputasset nocount onbeginif @UserID is null returnselect @UserName=usernamefrom dbo.[userinfo]where userid=@UserIDreturnend13.Update语句常见错误总结--√Update name_table set F001 = @F181, F002 = @F182Where F003 = @F003--×Update name_table F001 = @F181, F002 = @F182Where F003 = @F003--×Update name_table set F001 = @F181, F002 = @F182,Where F003 = @F003--×Update name_table set ,F001 = @F181 ,F002 = @F182Where F003 = @F003
14.Insert语句常见语法错误总结
--√INSERT INTO name_table(,KEY_FIELD,BUSYOCD)Values(@F001,@F002)--×INSERT INTO name_table(F001,F002)Values(,@F001,@F002)--×INSERT INTO name_table(F001,F002)Values(@F001,@F002,)--×INSERT name_table(F001,F002)Values(@F001,@F002)
- SQL SERVER 存储过程基础集
- SQL SERVER 存储过程基础集
- sql server存储过程基础
- Sql Server 存储过程基础
- sql server存储过程基础
- SQL SERVER 存储过程基础集(转载)
- SQL Server基础概念--存储过程
- SQL Server 存储过程基础样例
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL Server基础之存储过程
- SQL SERVER存储过程
- SQL SERVER存储过程
- Sql Server 存储过程
- SQL Server存储过程
- linux与windows分区互访
- ASP.NET操作Access数据库
- 关于MVC的理解
- Eclipse快捷键
- 《金2》个评 第10版
- SQL SERVER 存储过程基础集
- NetBeans 时事通讯(刊号 # 13 - Jun 24, 2008)
- 获得对象的绝对坐标
- (转)Download and crack Jprobe 8.0
- 程序员如何沟通
- SQL Server存储过程编写和优化措施
- Silverlight在IIS上部署笔记
- minicom中文手册
- SQL Server数据库六种数据移动方法