[英]How to Implement Used() in SQL Server
请关注这个foxpro对sql server迁移的要求..
我在foxpro中有这个函数USED(),它确定一个表是否在工作区中打开。 SQL Server中是否有任何此类功能可以完成相同的工作?
我很久以前就从Foxpro搬到了SQL。 快速了解它在SQL Server中的工作方式:
USE
命令非常相似。 示例如下。 假设我的登录有权访问两个数据库,TestA和TestB。 两个数据库都包含表MyData,每个表包含不同的数据(A数据和B数据)。 当我登录时,我的上下文被设置为一个数据库,让我们说TestA。 如果我SELECT * from MyData
运行SELECT * from MyData
,我将从数据库TestA获取该表的内容。 如果我想从TestB获取数据,我要么必须SELECT * from TestB.dbo.MyDta
运行SELECT * from TestB.dbo.MyDta
- 指定数据库我从中获取数据 - 或者我必须更改数据库的上下文; 以编程方式,这是使用Use命令完成的,例如`USE TestB'。
这是对“它是如何工作”的非常简单的描述。 这是所有编程,这意味着有许多方法可以执行给定的操作,具体取决于您使用的工具(应用程序)和您要实现的任务。 我强烈建议您阅读SQL Books Online中的所有内容,SQL Server附带的文档 - Microsoft在记录此产品方面做得非常好。
菲利普对SQL中“开放”的一切都是正确的。 但是,我想我会表达一点不同。 当SQL-Server正在运行时(因为它通常是在服务器本身启动时启动的自动服务),任何“附加”的“数据库”都可以从其他地方的操作系统进行查询,并且基本上是不可触及的,因为SQL有一个打开文件的“句柄”,从而防止复制,删除,移动等...
如果您确实要复制/移动到其他位置甚至是其他服务器,则必须分离释放句柄的“数据库”,您可以执行任何操作。
至于你在SQL-Server中可以做些什么。 您甚至不必显式打开数据库,但可以通过database.table引用来限定查询...例如
select t1.field
from YourDatabase.SomeTable t1
where t1.SomeField = ?whatever
只要数据库附加,你就应该好好去。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.