Tag: SQL预览模式: 普通 | 列表

这个算是MS SQL SERVER的BUG吗?

在用between...and 查询datetime 和smalldatetime类型的记录时,发现结果异常。

 

Tags: between SQL datetime smalldatetime

分类:数据 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 286

下面的提示虽然不常见,但对于ASP程序员来说绝对不会陌生吧。

Microsoft OLE DB Provider for SQL Server 错误 '80004005'

连接字符串属性无效

关于这个问题的解答,网络上有很多版本,但基本上都是针对连接字符串的写法,而没有考虑到一种比较极端的情况:SQL Server没有启动。如下图:

不知道是什么原因,有时服务器重启后,SQL Server不会自动启动,所以就出现了本文开头提到的错误提示,解决这个自动启动的问题是另一回事了。现在想讨论的是在ASP里怎么去捕捉这个80004005错误。

在ASP代码是加下面的语句没有效果。

ASP/Visual Basic代码
  1. StrDSN="Provider=SQLOLEDB.1;Persist Security Info=false;Server=" & StrServerName & ";Database=" & StrDBName & ";Uid=" & StrUid & ";Pwd=" & StrPwd & ";Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30;"  
  2. Conn.Open StrDSN  
  3. If Err.number>0 Then  
  4.     'Response.write  Err.number&Err.Description  
  5.     'Response.write "提示:数据连接错误。"  
  6.     Response.redirect "/"  
  7.     Response.End  
  8. End If  

查看更多...

Tags: SQL 数据库 服务 连接 ASP 错误信息

分类:网络 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1078

取多个类别的前几条数据的SQL语句

 有一现实问题,想取某些类的前几条记录

SQL代码
  1. select * from BaikeInfo a where a.id in (select top 5 b.id from BaikeInfo b where b.Class = a.Class order by posttime descorder by Class, posttime desc  

 结果如下:

id     title    typeid posttime

3     1.3     1          3

2     1.2     1          2

6     2.3     2          6

查看更多...

Tags: 分组 查询 SQL

分类:数据 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 981

ASP调用MS SQL SERVER 的存储过程

SQL Server 存储过程

Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。

存储过程的概念

存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。

存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。

由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。

查看更多...

Tags: ASP 存储过程 SQL server

分类:数据 | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 3587

ACCESS与SQL SERVER的一些细微区别

Microsoft Access和 Microsoft SQL Server虽然同是微软的产品,但与微软的作风是一致的,就是自己的产品与自己的产品是可以不兼容或是不相同的。下面的不同是我在实际应用中遇到的,也在这些问题上浪费了大量时间后才醒悟过来的。

一、关键字(保留字)是不一样的,这个可以通过《SQL保留字查询》去查询验证。

二、两者所用的SQL语句的语法标准不同,ACCESS用的是JET SQL,而不是SQL Server所用的 T-SQL语句。

三、与上面第二点同理的一个例子,参阅《Count及Top在ACCESS里的异常表现

 

下面是这个例子,不知道是属于哪方面的区别。

SQL代码
  1. --SQL写法,注意后面不能有,号    
  2. delete from An_course where id in (45)     
  3. --ACCESS写法,SQL会出错    
  4. delete * from An_course where id in (45,)   

查看更多...

Tags: access SQL

分类:数据 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1619

Count及Top在ACCESS里的异常表现

ASP,ACCESS数据库,用Update更新数据时报错:

Microsoft JET Database Engine '80040e14'

Update 语句的语法错误。

该行代码如下,id字段是数值型的,id有值。

ASP/Visual Basic代码
  1. conn.execute ("update pubcou set count=count+1 where id="&id)  

 现在明白了,原来count是JET SQL语法里的关键字(count(*),用于统计的),天,当时我怎么没想到这方面呢!

关于SQL的关键字,有相关资料可供查询。

查看更多...

Tags: count 更新 关键字 SQL T-SQL access

分类:数据 | 固定链接 | 评论: 8 | 引用: 0 | 查看次数: 6265

SQL server Select的一些巧妙用法

SQL 语句中有些用法比较巧妙实用,记录以备不时之需。

在查询的时候生成类似自增长的数字序号:1、2、3。

SQL代码
  1. select row_number() over (order by a.entid) as  序号,name,...    

复制表(只复制结构,源表名:a 新表名:b) (Access可用)

SQL代码
  1. select * into b from a where 1<>1  
  2. select top 0 * into b from a  

 列出数据库里所有的表名 

SQL代码
  1. select name from sysobjects where type='U'  

查看更多...

Tags: SQL server 查询

分类:数据 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1896

SQL Server 学习笔记

《专家精讲:SQL Server Trainsact-SQL语言入门》,作者:杨志强

笔记内容摘录

字符串处理运算符

通配符

% 任意字符,包含空值

_ 下划线,任意单一字符

[ ] 包含指定范围的字符,'[S-V]ing'表示找出Sing,Ting,Uing,Ving等数据。

[^] 包含不在指定范围内的字符,like 'M[^c]%'表示第一个字母是"M”但第二个字母不可以包含"c”的字符串。

更多相关内容可参阅:SQL查询常用的通配符用法例举

查看更多...

Tags: SQL having 查询 通配符

分类:数据 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2278