最近我正在学习如何使用SQL server。我不明白为什么在以下语句中使用master..sysdatabases和test..sysobjects:
select name from [master]..[sysdatabases] where dbid=1;
select count(1) from [test]..[sysobjects] where xtype = 'U';计数(1)中的1是什么意思?是指第一栏吗?谢谢你有任何有用的答案。
发布于 2014-07-22 21:02:44
第一行基本上是获取主数据库的名称(它查看所有数据库的列表,并返回ID为1的数据库名称,在本例中通常是“master”)。
如果要查看服务器上的所有数据库,请执行以下操作:
SELECT * FROM [master]..[sysdatabases]请注意,带有"dbid“= 1的行是”主“数据库的行,该数据库是所有Server实例上的系统数据库。
第二行计算名为“test”的数据库中sysobjects集合中的行数,其中类型是用户表(即不是存储过程,不是系统表,等等)。
在表达式“x.y”中,'x‘是数据库的名称,'y’是该数据库中表或视图的名称。
如果您有一个名为"Foo“的数据库,并且在其中有一个名为"Bar”的表,那么这个语句将返回该表中的行数:
SELECT COUNT(1) FROM [Foo]..[Bar]正如Ed上面所描述的,“1”只是一个位置持有者,可以在任何可能的数据库或版本上以最有效的方式计算行的总数。这已经变成了一种简单的计数方式。
https://stackoverflow.com/questions/24896897
复制相似问题