修改字段类型和长度,深入探讨SQL

1.电话字段设置24个Byte竟然不够,好吧设置为50的长度。

alter table <表名> alter column <字段名> 新类型名(长度)

举例:
alter table T_CustomerFile alter MobilePhoneNumber nvarchar(50)

有表tb, 如下:
id value

DAC(Dedicated Admin Connection)是SQL Server 2005引入的一个东西,目的是在SQL Server发生严重性能问题的时候仍保留有限的资源保证管理员能够执行一些简单的命令用于问题诊断、释放资源、杀死肇事进程等。微软官方对DAC的说明:使用专用管理员连接.aspx)。对于DAC使用的一般情况,有两个不错的Blog值得推荐:

 2.删除一个表,整个表在数据库中消失

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[T_ABC]') AND type in (N'U'))

DROP TABLE [dbo].[T_ABC]

上面的两篇blog涉及到的基本是DAC访问单机单实例的情况。本文试图对DAC访问单机多实例的情况也做个探讨。

3、整型bigint、int、smallint、tinyint的区别

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1(9223372036854775807) 的整型数据

(所有数字)。存储大小为 8 个字节。

 

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1(2,147,483,647) 的整型数据(所有数字)。

存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

 

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。

 

tinyint

从 0 到 255 的整型数据。存储大小为 1 字节。

1 aa,bb
2 aaa,bbb,ccc
欲按id,分拆value列, 分拆后结果如下:
id value

1)单机单SQL Server实例,且SQL Server实例使用默认端口(1433)

 4、varchar、nvarchar、char、nchar

varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

 如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文等)字符时用nvarchar

 

char的长度是不可变的,而varchar的长度是可变的。char的存取数度比varchar要快得多,因为其长度固定,方便程序的存储与查找;char为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的

 

nchar的长度是不可变的,Unicode字符数据。

 

char,varchar 最多8000个英文,4000个汉字
nchar,nvarchar 可存储4000个字符,无论英文还是汉字

TEXT

text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

ntext
可变长度 Unicode 数据的最大长度为 2^30 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。

 

如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么使用char
能确定长度又不一定是ansi字符或者,那么使用nchar
对于超大数据,如文章内容,使用nText 
其他的通用nvarchar


--以下的形式都可以访问
sqlcmd -S myServer -U myUser -P myPassword -A
sqlcmd -S ADMIN:myServer -U myUser -P myPassword
sqlcmd -S myServer,1434 -U myUser -P myPassword
sqlcmd -S xxx.xxx.xxx.xxx -U myUser -P myPassword -A
sqlcmd -S xxx.xxx.xxx.xxx,1434 -U myUser -P myPassword

说明:
a) sqlcmd命令行中参数与参数值之间可以有空格也可以没有;如果你的密码中有空格,你可以用双引号把你的密码引起来;
b) sqlcmd命令中的“-S”其实也可以用"/S",其它参数也一样;
c) 1434是SQL Server连接的默认端口号;
d) 在服务器前加"ADMIN:"也是为了指定进行DAC连接;
e) “-A”是在sqlcmd命令行中指定DAC连接的参数;
f) "-A","ADMIN:",",1434"不能在一条命令中出现两个或以上,否则会报错;
g) 不在命令行中加入这3个参数("-A","ADMIN:",",1434")的任何一个,登录也能成功,差别在于你使用的连接是普通连接,不是DAC连接。一般来说,普通连接能用的资源更多,但是当系统性能出现严重问题的时候普通连接可能没法建立,这也是引入DAC的初衷;再就是DAC连接下能看到一些有助于诊断的秘密视图(参见上面推荐的第一个blog)。

本文由澳门新葡亰平台官网发布于数据库,转载请注明出处:修改字段类型和长度,深入探讨SQL

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。