我无法理解如何为我的文本定义一个具有适合我的最大大小的列。字符数。在Oracle中,我可以创建一个VARCHAR2(10 CHAR)
,它足够大,可以容纳10个字符。大小取决于数据库中使用的编码。但是我如何在SQL Server中执行此操作?我使用varchar(10)
吗? nvarchar(10)
?我希望能够存储各种角色(甚至是中文)。
答案 0 :(得分:2)
如果您需要中文字符,则需要使用nvarchar(n)
并指定有意义的n
长度。
您正在定义字符,并且您需要的空间是该数字的两倍(因为SQL Server中的任何Unicode字符始终使用2个字节)。
最大。大小为nvarchar(4000)
- 或者如果您确实需要更多,请使用nvarchar(max)
(最多 10亿个字符)。
我建议不只使用nvarchar(max)
来解决所有事情,因为我们考虑的是你需要什么尺寸的懒惰!由于它是一个非常大的专栏,因此您无法将其编入索引。
答案 1 :(得分:0)
如果您使用max
,则允许所有字符集的任意数量的字符。系统将优化存储。
行大小限制here。有关使用<?php
$s = '23_The_Sample_Book_145236985.pdf';
// Separate the string based on underscore and create an array
$arr = explode('_', $s);
// Remove the first and last array elements
// 23 and 145236985.pdf in the case of this string
$arr = array_slice($arr, 1, (count($arr)-2));
// Rejoin with an underscore
echo implode('_', $arr);
的限制,请参阅@marc_s的答案。