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中创建事务

SQLServer开发总结

 

命名控件和类名必须和自动生成的类的一致,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

你可能感兴趣的:(sqlserver)