
SQL Server 2005,每个实例的数据库最大个数32767
每个数据库最多可存储 20 亿个表,每个表可以有 1024 列。表的行数及总大小仅受可用存储空间的限制。每行最多可以存储 8,060 字节。如果创建具有 varchar、nvarchar 或 varbinary 列的表,并且列的字节总数超过 8,060 字节,虽然仍可以创建此表,但会出现警告信息。如果试图插入超过 8,060 字节的行或对行进行更新以至字节总数超过 8,060,将出现错误信息并且语句执行失败。
sql server 2000数据对象的系统范围,在实际应用过程中可以根据需要作适当的改变。
1、数据库:32767个数据库,最小为1MB,最大为1TB。
2、表:每个数据库最多有20亿个表。
3、列:每个表最多1024列,每列的最大字节数为8060(文本和图像列除外)。
4、索引:每个表有一个聚集索引,249个非聚集索引。一个复合索引最多有16个索引关键字。
5、触发器:每个表最多有3个触发器,分别用于插入、修改和删除等 *** 作。
6、存储过程:一个存储过程可以有1024个参数和最多32级嵌套。
7、用户连接:32767个。
8、锁定及打开的对象:20亿个。
--查看所有数据库:
select name from sysdatabases
--查看当前数据库的所有表的名字
select name from sysobjects where xtype='U' and category=0
xtype可替换为如下参数
--C = CHECK 约束
--D = 默认值或 DEFAULT 约束
--F = FOREIGN KEY 约束
--L = 日志 --FN = 标量函数
--IF = 内嵌表函数
--P = 存储过程
--PK = PRIMARY KEY 约束(类型是 K)
--RF = 复制筛选存储过程
--S = 系统表
--TF = 表函数
--TR = 触发器
--U = 用户表
--UQ = UNIQUE 约束(类型是 K)
--V = 视图
--X = 扩展存储过程
CREATE TABLE person (
name varchar(20)
);
INSERT INTO person VALUES ('a,b,c');
INSERT INTO person VALUES ('a,b');
INSERT INTO person VALUES ('a,c');
DELIMITER //
DROP FUNCTION GetTextCount //
/
-- 获取字符串中有几个部分
/
CREATE FUNCTION GetTextCount(pSourceText VARCHAR(255), pDivChar CHAR(1))
RETURNS TINYINT
BEGIN
-- 预期结果
DECLARE vResult TINYINT;
-- 当前逗号的位置
DECLARE vIndex INT;
-- 前一个逗号的位置
DECLARE vPrevIndex INT;
-- 结果的初始值
SET vResult = 1;
-- 查询第一个 逗号的位置
SET vIndex = INSTR(pSourceText, pDivChar);
IF vIndex = 0 THEN
-- 参数中没有逗号,直接返回
RETURN vResult;
END IF;
-- 初始化情况,前一个逗号不存在
SET vPrevIndex = 0;
-- 循环处理。
WHILE vIndex > 0 DO
-- 结果递增
SET vResult = vResult + 1;
-- 前一个逗号的位置 = 当前逗号的位置
SET vPrevIndex = vIndex;
-- 查询下一个逗号的位置
SET vIndex = LOCATE(pDivChar, pSourceText, vPrevIndex + 1);
END WHILE;
-- 返回结果
RETURN vResult;
END;
//
DROP FUNCTION GetTextValue //
/
-- 获取字符串中具体某一个部分的数据
/
CREATE FUNCTION GetTextValue(pSourceText VARCHAR(255), pDivChar CHAR(1), pIndex TINYINT)
RETURNS VARCHAR(255)
BEGIN
-- 预期结果
DECLARE vResult VARCHAR(255);
IF pIndex = 1 THEN
SELECT SUBSTRING_INDEX(pSourceText, pDivChar, 1) INTO vResult;
ELSE
SELECT
REPLACE(
SUBSTRING_INDEX(pSourceText, pDivChar, pIndex),
CONCAT(SUBSTRING_INDEX(pSourceText, pDivChar, pIndex - 1) , pDivChar),
'') INTO vResult;
END IF;
-- 返回
RETURN vResult;
END;
//
DELIMITER ;
SELECT
GetTextValue(tname, ',', MaxNumNo) AS `名称`,
COUNT() AS `个数`
FROM
person t,
(SELECT 1 No UNION ALL
SELECT 2 No UNION ALL
SELECT 3 No UNION ALL
SELECT 4 No UNION ALL
SELECT 5 No ) MaxNum
WHERE
GetTextCount(tname, ',') >= MaxNumNo
GROUP BY
GetTextValue(tname, ',', MaxNumNo);
+------+------+
| 名称 | 个数 |
+------+------+
| a | 3 |
| b | 2 |
| c | 2 |
+------+------+
3 rows in set (001 sec)
数据库服务器依赖于存储服务器的数据,这意味着数据库数据文件被放置在存储服务器上。
数据以记录的形式存储在数据库中;数据库将数据作为文件存储在存储服务器上。
数据库服务器由在局域网和数据库管理系统软件中运行的一台或多台计算机组成,数据库服务器为客户端应用程序提供数据服务。存储服务器是为特定目标设计的,因此配置也不同。它可能是一个稍有额外存储空间的服务器,或者它可能有很多存储空间。
以上就是关于关于数据库大小的问题:可支持几个库一库可以有多少表一表最大可有多少记录全部的内容,包括:关于数据库大小的问题:可支持几个库一库可以有多少表一表最大可有多少记录、在SQL Server中每个数据库最多可以创建多少个数据库对象,一个表最多允许多少个字、sql 查看有多少个数据库的个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)