zoukankan      html  css  js  c++  java
  • SQLServer开发总结

    实用技巧:

    字符串截取:SUBSTRING(‘123456’, 1, 4)

    转换日期格式:CONVERT(varchar(100), getdate(), 23) “2012-01-01”

    转换格式:cast('2012-01-01' as datetime)//时间格式

    Datetime增加:dateadd(yy,1, getdate())

    寻坏遍历:

    while 1< 2

    begin

    end

     

    Sql 语句大全(收集)http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html

     

    在强类型DataSet中创建事务

    命名控件和类名必须和自动生成的类的一致,partial代表此类是一个成员类,类似于对另外一个类的扩展。

    创建一个临时表

    --第一步创建临时表
    
      CREATE TABLE #TMP_FLOW_LEAVE_OVERTIME
    
      (
    
         FLOW_YEAR     nvarchar(10)  NOT NULL,--年份
    
         Vacation      decimal(16, 2) default 0,--年假
    
      )
    
      select * from #TMP_FLOW_LEAVE_OVERTIME;--查询临时表
    
      DROP TABLE #TMP_FLOW_LEAVE_OVERTIME;--删除临时表
    一个简单的执行存储过程(不带参数)Dataset的代码:

     

    using (SqlConnection conn = new SqlConnection(connectionString))
    
                {
    
                  conn.Open();
    
                    SqlCommand cmd;
    
                    conn = new SqlConnection(connection);
    
                    DataSet myds = new DataSet();
    
                    cmd = new SqlCommand("存储过程名", conn);
    
                    cmd.CommandType = CommandType.StoredProcedure;
    
                    SqlDataAdapter sdp = new SqlDataAdapter();
    
                    sdp.SelectCommand = cmd;
    
                    sdp.Fill(myds);
    
                  conn.Close();
    
                }
    一个简单的Sql事务处理代码
    using (SqlConnection conn = new SqlConnection(connectionString))
             {
                    conn.Open();
                    SqlTransaction myTrans = conn.BeginTransaction();
                    SqlCommand com = new SqlCommand();
    
                    com.Connection = sqlConnection;
    
                    com.Transaction = myTrans;
    
                    com.CommandText = "SQL语句";
    
                    com.ExecuteNonQuery();
    
                    myTrans.Commit();//提交事务
    
                    myTrans.Rollback();//事务回滚
    
                    conn.Close();
    
                    conn.Dispose();//释放资源
    
                }

    一个简单的执行存储过程(inputoutputreturnvalue等参数)Dataset代码:

    using (SqlConnection conn = new SqlConnection(connectionString))
    
    {
    
         conn.Open();
    
         SqlCommand cmd;
    
         conn = new SqlConnection(connection);
    
         DataSet myds = new DataSet();
    
         cmd = new SqlCommand("存储过程名", conn);
    
     
    
         SqlParameter paraInput = new SqlParameter("@paraInput", SqlDbType.NVarChar, 15);
    
         paraInput.Value = strParaInput;//默认是input
    
         cmd.Parameters.Add(paraInput);
    
     
    
        SqlParameter paraOutput = new SqlParameter("@paraOutput", SqlDbType.Bit);
    
        paraOutput.Direction = ParameterDirection.Output;//输出类型
    
        cmd.Parameters.Add(paraOutput);
    
       SqlParameter paraReturn = new SqlParameter("@paraReturn", SqlDbType.NVarChar, 400);
    
       paraReturn.Direction = ParameterDirection.ReturnValue;//返回类型
    
       querycmd.Parameters.Add(paraReturn);
    
     
    
       cmd.CommandType = CommandType.StoredProcedure;
    
       //第一种直接执行
       Cmd.ExecuteNonQuery(); 
    
       //第二种用SqlDataAdapter执行
       SqlDataAdapter sdp = new SqlDataAdapter();
    
       sdp.SelectCommand = cmd;
    
       sdp.Fill(myds);
    
       conn.Close();
    
       bool OutputValue=paraOutput.Value;//获取输出值
    
       string ReturnValue = paraReturn.Value;//获取返回值
    
    }

    一个存储过程的参考

    /********************************************************************
    
    功能描述:验证申请单的有效性,并获取申请单的状态
    
    创建人:
    
    创建时间:
    
    修改人:
    
    修改时间:
    
    修改事项:
    
    *********************************************************************/
    
    CREATE PROCEDURE 存储过程名
    
             @c_FLOW_TYPE nvarchar(15), --流程类型
    
             @b_SUCCESS bit OUTPUT,--执行结果,1-成功,0-失败。SP统一
    
             @c_MSG nvarchar(400) OUTPUT --执行结果信息。SP统一
    
    AS
    
    BEGIN TRY--捕获异常的try catch语句块
    
             --1.   初始化输出参数
    
             SELECT @b_IS_VALID = 0,@c_MSG = '',@b_SUCCESS = 1,@c_FLOW_STATE = '';
    
             --2.   检查参数@c_FLOW_TYPE和@c_PROCESSOR合法性(参考codelist中FLOW_TYPE的内容)
    
             IF NOT EXISTS(
    SELECT                  1               FROM                  SYS_CODELIST A,SYS_CODELIST_LINE B               WHERE                  A.CODELIST_ID = B.CODELIST_ID                  AND A.CODELIST_NAME = 'FLOW_TYPE'                  AND B.CODE_VALUE = @c_FLOW_TYPE               ) BEGIN SET @c_MSG = N'不是有效的申请单类型!'; RETURN; END

    --3. if else语句块 IF @n_FLOW_ID <= 0 BEGIN SET @c_MSG = N'申请单序号无效';--N'string' 表示string是个Unicode字符串 END ELSE BEGIN SET @c_MSG =N'申请单序号有效'; END END TRY BEGIN CATCH --设置返回信息 SET @b_SUCCESS = 0; SET @c_MSG = ERROR_MESSAGE() + N' ([dbo].[NSP_FLOW_APPLICATION_VERIFY])'; RAISERROR(@c_MSG,16,1)--RAISERROR是用于抛出一个错误. --参考:(http://www.cnblogs.com/xugang/archive/2011/04/09/2010216.html) END CATCH
  • 相关阅读:
    软件部门每年耗资大约100亿到200多亿美元,但没有研发出任何具有说服力的产品,因此华为决定关闭
    Qt Model/View理解(二)---构造model(细心研读,发现超简单,Model就是做三件事:返回行数量、列数量、data如何显示。然后把model与view联系起来即可,两个例子都是如此)good
    linux 下用find命令查找文件,rm命令删除文件
    北电之死:谁谋杀了华为的对手?——银湖资本(Silver Lake)董事总经理爱德华·詹德出任CEO,既不了解华为,也不重视中国,直截了当地否决了收购华为
    搞定JavaScript正则表达式
    Orleans3.0
    CSS盒模型
    作用域和闭包
    NServiceBus是.Net平台下的开源的消息服务框架
    [1]System.Reflection.Emit
  • 原文地址:https://www.cnblogs.com/zhangliangzlee/p/2608259.html
Copyright © 2011-2022 走看看