Access查询类型的SQL Server移植选择与建议

一个SELECT语句可以存储在事务处理SQL文件、存储过程或是视图中。建立存储过程是将数据库应用开发与数据库设计的物理实施分开的最佳方法。存储过程可在一处创建而由应用程序调用。  
如果存储过程所基于的数据库变化了,而存储过程经过仔细的修改以反应这些变化,则对存储过程的调用将不会受到破坏。  

交叉表(CROSSTAB)  
交叉表经常用于总结报表。  

一个Access的交叉表可以通过SQL程序段、存储过程或视图中的事务处理SQL语句来执行。每当发出一个查询时,数据连接被重现执行以确保最近的数据得到使用。  

根据实际应用情况,比较合适的方法是将交叉表中的数据存储为一个临时表(参考下面的MAKE   TABLE),临时表对资源的需求比较少,但是临时表在建立的同时只提供对数据的一个快照(snapshot)。  

创建表(MAKE   TABLE)  
Access中的“MAKE   TABLE”(   创建表)可以通过事务处理SQL脚本程序或存储过程中的事务处理SQL语言的建表语句“CREATE   TABLE”来执行。语法如下所示:  
SELECT   [   ALL   |   DISTINCT   ]  
[   {TOP   integer   |   TOP   integer   PERCENT}   [   WITH   TIES]   ]  
<select_list>  
[   INTO   new_table   ]  
[   FROM   {<table_source>}   [,…n]   ]  
[   WHERE   <search_condition>   ]  
[   GROUP   BY   [ALL]   group_by_expression   [,…n]  
[   WITH   {   CUBE   |   ROLLUP   }   ]  
CREATE   TABLE   mytable   (low   int,   high   int)  

UPDATE(修改)  
UPDATE语句可以存储在事务_SQL脚本程序中,然而比较好地执行UPDATE语句的方法是创建一个存储过程。  

APPEND(添加)  
ALLEND语句可以存储在事务_SQL脚本程序中,然而比较好地执行APPEND语句的方法是创建一个存储过程。  


移植Microsoft   Access的查询到存储过程和视图  

每个Access查询都必须用以下的一系列语句替换:  
CREATE   PROCEDURE   <NAME_HERE>   AS  
<   SELECT,   UPDATE,   DELETE,   INSERT,   CREATE   TABLE   statement   from   Microsoft   Access   >  
GO  

CREATE   VIEW   <NAME_HERE>   AS  
<Place   (SELECT   only,   with   no   parameters)   Microsoft   Access   Query>  
GO  

对每个Access查询应执行:  

打开Access,然后在SQL   Server中,打开SQL   Server查询分析器。  
在Access的数据库窗口中点击“Queries”tab键,然后点击“Design”按钮。  
在“View”菜单上点击“SQL”按钮。  
将整个查询粘贴到SQL   Server查询分析器中。  
测试语法,保存事务处理SQL语句以备后用,或者在数据库中执行这些语句。您可以选择将事务处理SQL语句保存到一段脚本程序中。  

移植Microsoft   Access查询到事务处理SQL语句  

大部分的Access查询应该转换成存储过程和视图。然而,有一些应用程序开发者不太常用的语句可以存储为事务处理SQL脚本,一种以sql为文件扩展名的文本文件。   这些文件可以在SQL   Server查询分析器中运行。  

如果您打算将一些Access查询转换为sql文件的话,可以考虑根据它们使用的方式有区别地将这些事务处理SQL语句分别放在几个脚本程序中。例如,您可以将必须以同样频率运行的事务处理SQL语句归类到同一个脚本中。另一个脚本中则应包含所有只在某些条件下运行的事务处理SQL语句。此外,必须以一定顺序执行的事务处理SQL语句应当归类到一个不连续的脚本中。  

将Access语句转移到事务处理SQL   文件  

将语句拷贝到SQL   Server查询分析器中  
使用蓝色的多选项图标分析语句  
在适当时候执行该语句  

要执行Access中的创建表(MAKE   TABLE)的查询任务的开发者在SQL   Server中有几种选择。开发者可创建下列对象之一:  

一个视图  
视图具有动态的虚拟表的效果,可提供最近的信息。这是一个输入/输出强化器,因为每当发出一个查询时它都要求对数据表重现建立连接。  

一个临时表  
临时表为已连接的用户会话建立一个快照。您可以建立局部的或全局的临时表。局部临时表只在当前会话中可见,而全局临时表则在所有会话都是可见的。在局部临时表的名字前加上单个数字的前缀((#table_name)),而在全局临时表的名字前加上两位数字的前缀(##table_name)。对临时表的查询执行起来非常快,因为它们取得一个结果集的时候通常只用一个表,而不是将多个表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值