• 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
  • 相关阅读:
    PAT (Advanced Level) Practice 1054 The Dominant Color (20 分)
    PAT (Advanced Level) Practice 1005 Spell It Right (20 分) (switch)
    PAT (Advanced Level) Practice 1006 Sign In and Sign Out (25 分) (排序)
    hdu 5114 Collision
    hdu4365 Palindrome graph
    单链表查找最大值、两个递增的链表合并并且去重
    蓝桥杯-最短路 (SPFA算法学习)
    蓝桥杯-最大最小公倍数
    Codeforces-470 div2 C题
    蓝桥杯-地宫取宝
  • 原文地址:https://www.cnblogs.com/zhangliangzlee/p/2608259.html
Copyright © 2020-2023  润新知