浏览模式: 普通 | 列表
分类: Sql Server | < | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | >

MSSQLServerADHelper服务不能启动

[ 2008-08-15 10:47:26 | 作者: admin ]
p.s. 不要在服务中手工启动,需要在 sql自带的 sqlserver 服务管理器控制
attachments/200808/15_105005_1.gif


MSSQLServerADHelper
如果 Microsoft SQL Server 和 Microsoft SQL Server Analysis 服务不使用 LocalSystem 帐户运行,MSSQLServerADHelper 系统服务将允许上述服务在 Active Directory 中发布信息。

每个计算机仅允许运行一个 MSSQLServerADHelper 服务实例。Microsoft SQL Server 和 Microsoft SQL Server 分析服务的所有实例将在需要时使用它。

MSSQLServerADHelper 不是服务器服务,也不为客户端请求服务。该服务不使用 UDP 或 TCP 端口。
...

阅读全文…

T-SQL游标使用

[ 2008-08-11 10:27:44 | 作者: admin ]
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

1. 为何使用游标:

                 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

2. 如何使用游标:

          一般地,使用游标都遵循下列的常规步骤:

            (1) 声明游标。把游标与T-SQL语句的结果集联系起来。
            (2) 打开游标。
...

阅读全文…
p.s. 由于excel的第一个表可能不是sheet1$,所以需要我们获取第一个表的名字,此ado的方法同样适用access等
defaultTable = ""
Set rsTable=eConn.OpenSchema(20)
           if not rsTable.eof then defaultTable = replace(rsTable(2),"'","")

             'While not rsTable.EOF ‘获取所有的表
                  'Response.Write("所在数据库名:" & rsTable(0) & "<br>")
                  'Response.Write("所有者:" & rsTable(1) & "<br>")
                  'Response.Write("表 名:" & rsTable(2) & "<br>")
...

阅读全文…
p.s. 经典的sql日志工具,用于sql2000以前版本,不支持sql2005

attachments/200807/26_085632_1.gif


Log Explorer is the leading transaction analysis and data recovery solution that improves the availability and integrity of your data. By providing unprecedented access to the database transaction log, Log Explorer gives you the ability to understand and resolve elusive database problems. Easily identify ...

阅读全文…

SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY

[ 2008-05-27 08:37:56 | 作者: admin ]
p.s. 不能笼统的说哪个取值最准确,还是应该根据你想要的结果来选择合适的函数,下面进行了一些分析,也给出了几个应用环境实例。

说明:作用域指的是存储过程、触发器、函数或批处理

SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 是相似的函数,因为它们都返回插入到标识列中的值。

IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。有关详细信息,请参阅 IDENT_CURRENT (Transact-SQL)。

SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。
...

阅读全文…

sql server 无法删除列

[ 2008-05-23 14:58:27 | 作者: admin ]
问题:
使用alter table 出货记录 drop column 时间 来删除时间列
    提示:
    服务器: 消息 5074,级别 16,状态 1,行 1
    对象 'DF__出货记录__时间__33D4B598' 依赖于 列 '时间'。
    服务器: 消息 4922,级别 16,状态 1,行 1
    ALTER TABLE DROP COLUMN 时间 失败,因为有一个或多个对象访问此列。

解决:
--删除default约束
    alter table 出货记录 drop constraint DF__出货记录__时间__33D4B598
    go
    --删除列
    alter table 出货记录 drop column 时间
p.s. 当我们直接在设计表的状态下对百万级的表结构进行修改,往往会超时。
而在 sql 查询分析器中执行修改语句却速度很快,不知道微软怎么想的

如 列columnname 的长度由100修改为200
alter table tablename alter column columnname nvarchar(200)

update中使用select结果

[ 2008-04-11 09:22:02 | 作者: admin ]
p.s. 下面是常见的例子

简单例子
引用
update t1 set totals=(select count(*) from t1 b where b.id=a.id ) from t1 a
复杂例子(跟新多个字段的情况)
引用
update a set (name1,age1) =(select name2,age2 from b where a.id=b.id)
where exists(select 1 from b where a.id=b.id);