仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 934|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之剖析SQL Server数据使用在分歧的数据库...

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。在软件开辟的初始阶段,开辟商们老是想把全部体系的最小的细节计划好了,然后再往单线程的编写代码。如许软件开辟完成必要很长工夫,但开辟商们一向都在这么做。
以是开辟者不能不往减少他们的野心,先计划好一个小体系,但是这个小体系只是办理了全部体系困难中的一部分。这招致了由分歧的团队计划和创立的很多小体系几近都不克不及互相之间兼容。
今朝,很多构造都延聘了数据库建模者大概DBA,这些人能监视数据库计划和开辟。不幸的是,那些构造只要在呈现某些情况后,才会心识到在他们的员工中必要如许的人。
数据建模者和DBA面临的一个十分广泛的成绩就是,怎样在分歧的数据库中剖析SQL数据。本文将经由过程一个牢靠的办法来讲明这个成绩。
一个实例
在这个实例计划中,有两个包括类似数据的数据库:一个利用术语OrderNumber,另外一个利用术语OrderNo。第一个数据库有关头字而第二个数据库没有。
起首,你会在两个数据库中发明它们的按次是类似的。清单A创立了两个数据库(Test_Cross_1和Test_Cross_2),每一个数据库中有一个表(分离是Orders_1和Orders_2)。
假定Orders_1包含这些行:
以下为援用的内容:
OrderNumberOrderDate
2007-02-2300:00:00.000
2007-02-2400:00:00.000
2007-02-2500:00:00.000
假定Orders_2包含这些行:
OrderNo OrderDate
2007-02-2300:00:00.000
2 2007-02-2400:00:00.000
2007-02-2400:00:00.000
30112007-02-2500:00:00.000
一旦你分明了怎样援用表SQL实行兼并操纵是很复杂的。简而言之,你要有正当的名字。如清单B所示。这将不会乐成,由于Order_2包含一行Order_1没有的数据。改动毗连,到场对外毗连符也不会乐成,就像你在清单C中看到的那样。第二个查询失掉跟第一个查询不异的了局,由于OrderNo301不存在于第一个表中。找到这一行,你必需在第二个查询中,将这个表的按次反转。如清单D。如今你就可以发明不婚配的行了。
以下为援用的内容:
OrderNo OrderDate OrderNumberOrderDate
1 2007-02-2300:00:00.0001 2007-02-2300:00:00.000
2 2007-02-2400:00:00.0002 2007-02-2400:00:00.000
2007-02-2400:00:00.000NULLNULL
2007-02-2500:00:00.00030112007-02-2500:00:00.000
假定有一些行存在于Order_1中而不存在于Order_2中。你将下面的查询翻转,它也能事情,但是,随后你会失掉两个查询和两个了局集,并停止你的查询,这些你都必需手动对照。假如每一个表只要四行,这是不坚苦的,可是设想一下假如有4,000行纪录的话,怎样利用这类不实在际的办法举行对照呢。你必需对两个表的每行没呈现在别的那张表的纪录举行反省。
以下为援用的内容:
CREATEDATABASE[Test_Cross_1]ONPRIMARY
(NAME=NTest_Cross_1,FILENAME=N
C:ProgramFilesMicrosoftSQLServerMSSQL.1MSSQLDATATest_Cross_1.mdf,
SIZE=2048KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)
LOGON(NAME=NTest_Cross_1_log,
FILENAME=NC:aProgramFilesMicrosoft
SQLServerMSSQL.1MSSQLDATATest_Cross_1_log.ldf,
SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)GO
USE[Test_Cross_1]
GO
CREATETABLE[dbo].[Orders_1]
([OrderNumber][int]NOTNULL,
[OrderDate][datetime]NOTNULL,
CONSTRAINT[PK_Orders_1]PRIMARYKEYCLUSTERED
([OrderNumber]ASC)WITH(PAD_INDEX=OFF,
STATISTICS_NORECOMPUTE=OFF,
IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,
ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]
CREATEDATABASE[Test_Cross_2]ONPRIMARY
(NAME=NTest_Cross_2,
FILENAME=NC:ProgramFilesMicrosoft
SQLServerMSSQL.1MSSQLDATATest_Cross_2.mdf,
SIZE=2048KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)
LOGON(NAME=NTest_Cross_2_log,
FILENAME=NC:ProgramFilesMicrosoft
SQLServerMSSQL.1MSSQLDATATest_Cross_2_log.ldf,
SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)GO
CREATETABLE[dbo].[Orders_2]
([OrderNo][int]NOTNULL,[OrderDate][datetime]
NOTNULLCONSTRAINT[DF_Orders_2_OrderDate]
DEFAULT(getdate()),CONSTRAINT[PK_Orders_2]
PRIMARYKEYCLUSTERED([OrderNo]ASC)WITH
(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,
IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,
ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

清单A
以下为援用的内容:
SELECT*FROMTest_Cross_1.dbo.Orders_1INNER
JOINTest_Cross_2.dbo.Orders_2
ONTest_Cross_1.dbo.Orders_1.OrderNumber
清单B
以下为援用的内容:
SELECT*FROMTest_Cross_1.dbo.Orders_1LEFTOUTER
JOINTest_Cross_2.dbo.Orders_2
ONTest_Cross_1.dbo.Orders_1.OrderNumber
清单C
以下为援用的内容:
SELECT*FROMTest_Cross_2.dbo.Orders_2LEFTOUTER
JOINTest_Cross_1.dbo.Orders_1
ONTest_Cross_2.dbo.Orders_2.OrderNo
清单D

优化的SQL查询算法,有效地提高查询速度
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-18 07:29:30 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
爱飞 该用户已被删除
板凳
发表于 2015-1-21 13:28:43 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
谁可相欹 该用户已被删除
地板
发表于 2015-1-30 19:12:39 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
变相怪杰 该用户已被删除
5#
发表于 2015-2-6 15:13:23 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
小妖女 该用户已被删除
6#
发表于 2015-2-16 20:48:25 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
老尸 该用户已被删除
7#
发表于 2015-3-5 09:29:21 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-12 02:53:55 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
深爱那片海 该用户已被删除
9#
发表于 2015-3-19 17:47:03 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表