易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

安装SQL Server后必做12步

12 Essential Steps After Installing SQL Server
By : Sadequl Hussain
Jul 13, 2009
 
from: http://www.sql-server-performance.com/articles/dba/post_installation_steps_p1.aspx
Rolling out SQL Servers is a key task for
DBAs.  While for some DBAs this can be a frequent exercise, others will have to
face it one time or other throughout their career in an organisation.
Successfully planning an installation
requires a fair bit of knowledge about SQL Server and a basic understanding of
the operating system. Once the installation is complete, the system usually
needs some changes to default configuration before production databases can be
rolled out. In this article I list some common steps that I take after
installing a SQL Server. This can be used as a “checklist” to ensure consistency
for all the SQL Servers that you roll out.
 
Step1: Install the Service Pack, Hotfixes and Cumulative
Updates
This is the first step you should take after
a ......

SQL 查询优化 (一)

使用聚集索引优化SQL查询
首先让我们做一个测试,现创建一个表 向表中插入不等数据
--DROP TABLE T_UserInfo--------------------------------------
CREATE
TABLE
T_UserInfo
(
Userid
varchar(20),
UserName varchar(20)
)
--
DECLARE
@I INT
DECLARE
@ENDID INT
SELECT
@I =
1
SELECT
@ENDID = 100
-- 在此处更改要插入的数据,重新插入之前要删掉所有数据
WHILE @I <=@ENDID
BEGIN
INSERT INTO T_UserInfo
SELECT 'ABCDE'+CAST(@I AS VARCHAR(20))+'EF','Fan'+CAST(@I AS VARCHAR(20))
SELECT @I = @I+1
END
--相关SQL语句解释
-------------------------------------------------------------建聚集索引
CREATE CLUSTERED INDEX INDEX_Userid  ON T_UserInfo (Userid)
--建非聚集索引
CREATE NONCLUSTERED INDEX INDEX_Userid  ON T_UserInfo (Userid)
--删除索引
DROP INDEX T_UserInfo.INDEX_Userid
我们创建 表T_UserInfo ,向T_UserInfo 添加100条数据。这时不创建索引。
然后写了一条查询语句:
SELECT * from T_UserInfo WHERE USERID='ABCDE6EF' 选中以上语句,
按Ctrl+L  ......

PL/SQL常用句法

1、循环插入测试数据:
SQL>
declare
maxrecords constant int:=100;
i int :=1;
Begin
for i in 1..maxrecords loop

--插入数据
Insert into TEST.EXAMPLE(name,phone,address) values('分页测试数据....','联系电话','联系地址');
end loop;
commit;
end;
此处EXAMPLE表定义为(ID number,name varchar2(50),phone varchar2(50),address varchar2(50)),且ID通过触发器实现自增加。
触发器内容如下:
begin
select emp_sequence.nextval into :new.id from dual;
end;
在插入到191条记录十,出现如下错误,不知道为什么,以后再看
ORA-06502: PL/SQL: 数字或值错误 : 数值精度太高
ORA-06512: 在"TEST.TIB_EXAMPLE", line 3
ORA-04088: 触发器 'TEST.TIB_EXAMPLE' 执行过程中出错
...
2、两种oracle的分页方法:
①采用rownum关键字(三层嵌套)
SELECT * from(
SELECT A.*,ROWNUM
num from
(SELECT * from t_order)A
WHERE
ROWNUM<=15)
WHERE num>=5;
--返回第5-15行数据
②采用row_number解析函数进行分页(效率更高)
SELECT xx.* from(
SELECT t.*,row_number() over(ORDER BY o_id)AS num
from t_order ......

64位SQL Server2005访问32位SQL Server2000的问题

      HR服务器: 操作系统->32位Windows2000 SP4     数据库->32位SQL Server2000
      OA服务器: 操作系统->64位Windows2003 SP2     数据库->64位SQL Server2005
      OA项目中,需要从HR服务器中取得用户的手机号。对这种情况,我以前都是使用建立链接服务器的方式,于是,很快地写好脚本,把HR服务器注册了:
          exec sp_dropserver  'HRServer', 'droplogins'
          exec sp_addlinkedserver  'HRServer', '', 'SQLOLEDB', '10.101.166.38'
          exec sp_addlinkedsrvlogin  'HRServer', 'false', null, 'sa', 'buaa369'
     然后执行查询语句:
          select top 10 * from HRServer.testdb.dbo.EmpContactMethod
     结果,并没有出现 ......

SQL中的IF ELSE(CASE语句的使用)

----start
    大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的。在SQL的世界中CASE语句语句有类似的效果。下面简单的介绍CASE语句的用法。考虑下面的情况,假设有个user表,定义如下:
CREATE TABLE USER
(
NAME VARCHAR(20) NOT NULL,---姓名
SEX INTEGER,---性别(1、男 2、女)
BIRTHDAY DATE---生日
); 
CASE使用场合1:把user表导出生成一个文件,要求性别为男或女,而不是1和2,怎么办?我们可以用如下的语句处理:
SELECT
NAME,
CASE SEX
WHEN 1 THEN '男'
ELSE '女'
END AS SEX,
BIRTHDAY
from USER;
 
CASE使用场合2:假设user目前没有值,然后你往user导入了一批数据,但是很不幸,错把男设置成为2,而把女设置成为1,现在要求你变换过来,怎么办?
方法1:使用三条语句,先把2更新成3,接着把1更新成2,最后把3更新成1,很麻烦,不是吗?
UPDATE USER SET SEX=3 WHERE SEX=2;
UPDATE USER SET SEX=1 WHERE SEX=3;
UPDATE USER SET SEX=2 WHERE SEX=1; 
方法2:使用CASE语句
UPDATE USER SET SEX=
(
CASE SEX
WHEN 1 THEN 2
WHEN 2 THEN 1
ELSE SEX
END
); 
   ......

sql输出9*9乘法口诀表

--------------方法A-----------------
程序:
declare
    i int:=1;
    v varchar2(200):=NULL;
    v1 varchar2(20):=NULL;
begin
    loop
        for k in 1..i loop
            v1:=k||'*'||i||'='||k*i;
            v:=v||' '||v1;        
        end loop;
        dbms_output.put_line(v);
        v:=NULL;
    i:=i+1;
    exit when i>9;  
    end loop;
end;
运行结果如下:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9= ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [696] [697] [698] [699] 700 [701] [702] [703] [704] [705]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号