zoukankan      html  css  js  c++  java
  • SQL Server相关知识和经验的碎片化记录

    1、在向服务器发送请求时发生传输级错误

       在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) ---> System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。
      开始一直以为是网络连接的问题,最后发现是数据库连接字符串的问题

      之前的数据库连接字符串为:

           "server= server ;database=database ;uid= uid  ;pwd= pwd";
           后来修改为:
           "server= server ;database=database ;uid= uid  ;pwd= pwd;pooling=false";

           加了pooling=false  这个设置,就解决OK了!
    问题是由于.net跟sql server进行连接得时候,某个连接池等资源已经用尽了,或者说是达到了最大得连接数,因此我们在出现错误的前面加上一句话:SqlConnection.ClearAllPools()

    2、取表中的随机记录

    SELECT TOP 1 * FROM [Table] WHERE nImageType=1 ORDER BY NEWID()

    3、存储过程中游标的标准写法(遍历记录)

    DECLARE CURSOR_ItemDetail CURSOR FOR SELECT sItemID FROM [dbo].[f_getXmlDetail]()  WHERE [sTaskID]=@sTaskID            
    OPEN CURSOR_ItemDetail
    FETCH NEXT FROM CURSOR_ItemDetail INTO @sItemID
    WHILE @@FETCH_STATUS = 0
      BEGIN
        FETCH NEXT FROM CURSOR_ItemDetail INTO @sItemID
      END
    CLOSE CURSOR_ItemDetail
    DEALLOCATE CURSOR_ItemDetail

    4、字符串拆分函数(循环截取),并返回表变量

    ALTER FUNCTION [dbo].[f_splitSTR](
    @s   varchar(8000),  --待分拆的字符串
    @split varchar(10)   --数据分隔符
    )
    RETURNS @re TABLE(col nvarchar(MAX))
    AS
    BEGIN
     DECLARE @splitlen int
     SET @splitlen=LEN(@split+'a')-2
     WHILE CHARINDEX(@split,@s)>0
         BEGIN
            INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
            SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
         END
     INSERT @re VALUES(@s)
     RETURN
    END

    ......

    作者:yuzhihui
    出处:http://www.cnblogs.com/yuzhihui/
    声明:欢迎任何形式的转载,但请务必注明出处!!!
  • 相关阅读:
    oracel与mysql 查询从创建时间到更新时间的3天内的数据
    微信创建菜单
    利用XStream实现实体类与xml的转换
    play freamwork 框架中 调用线程保存数据
    play freamwork 框架中 设置文件大小
    将javabean转为map类型,然后返回一个map类型的值
    Base64的加密,解密
    MD5加密
    实体类与CDATA类型的xml的转换的工具类
    解决oracle数据库中 ORA-01843: 无效的月份问题
  • 原文地址:https://www.cnblogs.com/yuzhihui/p/5337486.html
Copyright © 2011-2022 走看看