请协助这个 foxpro 到 sql server 迁移要求..
我在 foxpro 中有这个函数 USED() ,它确定一个表是否在工作区中打开。SQL Server 中是否有任何此类功能可以完成相同的工作?
请协助这个 foxpro 到 sql server 迁移要求..
我在 foxpro 中有这个函数 USED() ,它确定一个表是否在工作区中打开。SQL Server 中是否有任何此类功能可以完成相同的工作?
我很久以前就从 Foxpro 搬到了 SQL。快速了解它在 SQL Server 中的工作原理:
USE
命令。示例如下。假设我的登录名可以访问两个数据库,TestA 和 TestB。两个数据库都包含表 MyData,每个表包含不同的数据(A 数据和 B 数据)。当我登录时,我的上下文被设置为一个数据库,比如说 TestA。如果我运行SELECT * from MyData
,我将从数据库 TestA 中获取该表的内容。如果我想从 TestB 获取数据,我要么必须运行SELECT * from TestB.dbo.MyDta
——指定我从中获取数据的数据库——要么我必须更改数据库的上下文;以编程方式,这是通过使用命令完成的,例如“USE TestB”。
这是对“它是如何工作的”的非常简单的描述。这都是编程,这意味着有几十种方法可以执行给定的操作,具体取决于您使用的工具(应用程序)和您想要完成的任务。我强烈建议阅读 SQL 联机丛书中的所有内容,SQL Server 附带的文档——微软在记录这个产品方面做得非常好。
菲利普关于在 SQL 中“开放”的一切都是正确的。但是,我想我会以不同的方式表达它。当 SQL-Server 运行时(因为它通常是在服务器本身启动时启动的自动化服务),任何已“附加”的“数据库”都可用于查询,并且基本上无法从其他任何地方的操作系统访问,因为 SQL 具有打开文件的“句柄”,从而防止复制、删除、移动等......
如果您确实想复制/移动到其他位置甚至另一台服务器,则必须分离释放句柄的“数据库”,您可以做任何事情。
至于你可以在 SQL-Server 中做什么。您甚至不必显式打开数据库,但可以通过 database.table 引用限定您的查询......例如
select t1.field
from YourDatabase.SomeTable t1
where t1.SomeField = ?whatever
As long as the database is attached, you should be good to go.