[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... [49] 打开企业管理器,选择要登陆的服务器,点属性,在安全的选项卡里把“仅windows”改成“sql server和windows”
企业管理器左边的选要登陆的服务器,安全性,登陆,可以设置登陆用的用户和密码。
以前装过sql server,后来删掉。现在重装,却出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。
参考网上资料,总算搞定。步骤是:
1)添加/删除程序中彻底删除sql server。
2)将没有删除的sql server目录也删除掉。
3)打开注册表编辑器,在hkey_local_machine\system\currentcontrolset\control\session manager中找到pendingfilerenameoperations项目,并删除它。这样就可以清除安装暂挂项目。
4)删除注册表中跟sql server相关的键。
其实估计只要做第3步就可以搞定,这样就可以清除安装暂挂项目。自己是先走了1,2,4,最后做了3才搞定。所以估计3才是最关键的。
删除xp_cmdshell use master exec sp_dropextendedproc n'xp_cmdshell' go -----------------------------------
use master
exec sp_dropextendedproc 'xp_cmdshell' go
===========================================
恢复xp_cmdshell
use master exec sp_addextendedproc n 'xp_cmdshell', n'xplog70.dll' go
=============================================== update sysxlogins set name='lottery' where sid=0x01
腾讯QQ互动状态代码生成页 [ 2010-01-28 |
本站原创 ]
大家都知道腾讯有个互动状态代码生成页,http://is.qq.com/webpresence/code.shtml,能很方便的生成互动按钮。但是腾讯的这个页面改过版了,我是今天才发现的。用以前的代码已经不能点击打开聊天窗口了,生成的新代码比以前长了,多了个sigkey,64位的
MD5Crack密码破解器 [ 2010-01-25 |
本站原创 ]
通常,在执行多条sql语句时,我们会采用下面的方法:
<% sql1 = "update table1 set a=b where id=1" conn.execute sql1 sql2 = "update table2 set a=b where id=2" conn.execute sql2 sql3 = "update table3 set a=b where id=3" conn.execute sql3 %>
事实上,这是一种效率很低下的写法,为了提高sql的执行效率,我们可以把多个sql语句用分号拼接在一起,然后一次性交给conn来执行。如下:
<% sql1 = "update table1 set a=b where id=1" sql2 = "update table2 set a=b where id=2" sql3 = "update table3 set a=b where id=3" sql = sql1 & ";" & sql2 & ";" & sql3 conn.execute sql %>
但是,以上2种写法都会面临一个问题,就是当我们需要保证3条sql语句都必须完整执行,当某一条执行错误时,其他2条也跟着回滚时,我们就需要用到sqlserver的事务控制了,不少的文章建议使用以下方法:
<% dim conn=server.createobject("adodb.connection") '开始事务 conn.begintrans '执行sql,若成功则提交事,否则回滚事务 conn.execute(sql语句) '提交事务 conn.committrans '回滚事务 conn.rollbacktrans %>
在很多时候,这并不能达到保证sql语句完整执行的目的,高效的做法应该是利用sqlserver本身的事务控制功能,如下:
<% sub exesql(byval sqlstr) dim trsql trsql = "set xact_abort on;begin transaction;" trsql = trsql & sqlstr trsql = trsql & ";commit transaction;set xact_abort off" conn.execute(trsql) end sub
sql1 = "update table1 set a=b where id=1" sql2 = "update table2 set a=b where id=2" sql3 = "update table3 set a=b where id=3" sql = sql1 & ";" & sql2 & ";" & sql3 exesql sql %>
本篇文章来源于 goldtimes.net 原文链接:http://www.goldtimes.net/goldtimes/view.asp?id=657
create trigger tr_deletecompany on company for delete as delete info from info a join deleted b on a.username=b.username go
删除企业表,同时删除该企业发布的信息
-----------------------------------------------------------
create trigger tr_deletecompany2 on company for delete as delete classified from classified a join deleted b on a.username=b.username go
-----------------------------------------------------------
delete from company where companyname='' or companyname is null
sql> delete news;
已删除2行。
sql> drop table news;
表已删除。
sql> create table news( 2 id varchar2(20) not null, 3 objid varchar2(20) not null, 4 title varchar2(60) not null, 5 author varchar2(40), 6 fromwhere varchar2(60), 7 content clob, 8 adddate date, 9 constraint pk_news primary key(id), 10 constraint fk_news foreign key(objid) 11 references newobj(id) 12 on delete cascade);
表已创建。
sql> insert into news(id,objid,title)values('10','10','buy the computer');
已创建 1 行。
sql> insert into news(id,objid,title)values('20','10','i love you');
已创建 1 行。
sql> select count(*) from newobj;
count(*) ---------- 2
sql> select count(*) from news;
count(*) ---------- 2
sql> delete from newobj where id='10';
已删除 1 行。
sql> select count(*) from newobj;
count(*) ---------- 1
sql> select count(*) from news;
count(*) ---------- 0
我删除新闻表,然后重建新闻表,并加了:on delete cascade
添加相应记录,我试着删除新闻栏目id为10的栏目;新闻表中的记录也跟着删除了;
小结: on delete cascade实现了级联删除;
asp高级编程:大型数据库建表技术
'建立数据库 sql="create table [db_posts"&request("tablename")&"] ("&_ "id int identity (1, 1) not null ,"&_ "threadid int not null ,"&_ "istopic int default 0 not null ,"&_ "subject varchar(255) not null ,"&_ "username varchar(255) not null ,"&_ "content text not null ,"&_ "posttime datetime default "&sqlnowstring&" not null ,"&_ "postip varchar(255) not null "&_ ")" conn.execute(sql)
'建立关联 sql="alter table [db_posts"&request("tablename")&"] add constraint [fk_db_posts"&request("tablename")&"_db_threads] foreign key ([threadid]) references [db_threads] ([id]) on delete cascade on update cascade" conn.execute(sql)
error("建立成功!")
----------------------------
--在自己创建的数据库中创建表
use sb --使用某个数据库,格式: ues 数据库名 create table 123 --格式:create table 自定义的表名 ( --字段名一般为有一定意义的英文 names char (15), -- 格式:字段名 类型 () 括号里面的是允许输入的长度 age int, --int型的后面不要接长度 years text (20) --最后一个字段后面不要逗号 )
--在创建表时就可以对字段加上约束: create table 123 ( names char (15) primary key identity(1,1) , --加主键约束,还有标识列属性(两者构成实体完整性) age int not null, --加非空约束,不打"not null"默认为:可以为空 years text (20) foreign key references 456(years), --加外键约束,格式:foreign key references 关联的表名(字段名) class char (20) default '哈哈' --加默认值约束 school char (30) check(school='十五' or school='十') --加检查约束,格式:check (条件表达式) -- )
--如果在表创建好了以后再加约束,则格式分别为:
-- 主键: alter table 表名 add constraint pk_字段名 --"pk"为主键的缩写,字段名为要在其上创建主键的字段名,'pk_字段名'就为约束名 primary key (字段名) --字段名同上
--唯一约束: alter table 表名 add constraint uq_字段名 unique (字段名)
--外键约束: alter table 表名 add constraint fk_字段名 --"fk"为外键的缩写 foreign key 字段名 references 关联的表名 (关联的字段名) --注意'关联的表名'和'关联的字段名'
--检查约束: alter table 表名 add constraint ck_字段名 check (条件表达式) --条件表达式中的条件用关系运算符连接
--默认值约束: alter table 表名 add constraint df_字段名 default '默认值' for 字段名 --其中的'默认值'为你想要默认的值,注意'for'
--删除创建的约束: alter table 表名 drop constraint 约束名 --约束名为你前面创建的如:pk_字段 这样的约束名 --注意:如果约束是在创建表的时候创建的,则不能用命令删除 --只能在'企业管理器'里面删除
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... [49]