网站建设资讯

NEWS

网站建设资讯

表类型SQLServer,excel2016图表类型

SQLserver基本表的type值怎么看

可用两种方法,一种是在MicrosoftSQLServerManagerStudio中的图形界面查询,另一种是语句查询。

思明网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

1.使用MicrosoftSQLServerManagerStudio登录数据库。2.在左边树找到要查的表,并点击前边的+。3.点击列”前边的+。4.然后就可以看到要查的字段的类型了。

直接用语句查询,如要查student表中的所有字段类型:selecta.name表名,b.name字段名,c.name字段类型,c.length字段长度fromsysobjectsa,syscolumnsb,systypescwherea.id=b.id,anda.name='student'anda.xtype='U',andb.xtype=c.xtype。

sqlserver怎么操作自定义表类型

-- ================================

-- 创建和使用自定义表类型

-- ================================

USE master

GO

-- ================================

-- 创建测试数据库

-- ================================

CREATE DATABASE demo

GO

-- ================================

-- 创建一个表

-- ================================

USE demo

GO

CREATE TABLE Customers

(

Id int NOT NULL,

Name char(10) NULL,

PRIMARY KEY (Id)

)

GO

USE demo

GO

-- ================================

-- 创建自定义表类型

-- ================================

CREATE TYPE dbo.CustomerTable AS TABLE

(

Id int NOT NULL,

Name char(10) NULL,

PRIMARY KEY (Id)

)

GO

-- =================================

-- 直接使用自定义表类型

-- =================================

DECLARE @c CustomerTable

INSERT INTO @c VALUES(1,'Xizhang')

SELECT * FROM @c

-- =================================

-- 在存储过程中使用自定义表类型

-- =================================

CREATE PROC GetCustomers

(@c CustomerTable READONLY)

AS

INSERT Customers SELECT * FROM @c --将传过来的参数(其实是一个表)的数据插入到Customers表里面去

-- =================================

-- 调用该存储过程,一次性插入4行数据

-- =================================

DECLARE @temp CustomerTable

INSERT INTO @temp VALUES(7,'Xizhang')

INSERT INTO @temp VALUES(2,'Xizhang')

INSERT INTO @temp VALUES(3,'Xizhang')

INSERT INTO @temp VALUES(4,'Xizhang')

EXEC GetCustomers @c=@temp

SELECT * FROM Customers

-- =================================

-- 清理数据库

-- =================================

USE master

GO

DROP DATABASE demo

GO

看起来不错对吧,但是你应该马上想到一个问题,如果说这个存储过程要在客户端代码中调用,那么该怎么提供这个参数值呢?

using System.Data.SqlClient;

using System.Data;

class Program

{

static void Main(string[] args)

{

DataTable tb = GetData();

using (SqlConnection conn = new SqlConnection("server=sql2008;database=demo;integrated security=true"))

{

using (SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = "GetCustomers";

cmd.CommandType = CommandType.StoredProcedure;

SqlParameter param = new SqlParameter("@c", SqlDbType.Structured);//这个类型很关键

param.Value = tb;

cmd.Parameters.Add(param);

conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

}

}

Console.WriteLine("完成操作");

Console.Read();

}

private static DataTable GetData()

{

DataTable tb = new DataTable();

tb.Columns.Add("Id",typeof(int));

tb.Columns.Add("Name", typeof(string));

//添加100个客户资料

for (int i = 0; i 100; i++)

{

DataRow row = tb.NewRow();

row[0] = i;

row[1] = "Name " + i.ToString();

tb.Rows.Add(row);

}

return tb;

}

}

sqlserver的数据类型

sqlserver的数据类型比较多,常用的包括:

第一大类:整数数据

bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.

int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1.

smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1

tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1

第二大类:精确数值数据

numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.

decimal:和numeric差不多

第三大类:近似浮点数值数据

float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308.

real:位数为24,用4个字节,数字范围:-3.04E+38至3.04E+38

第四大类:日期时间数据

datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.

smalldatetime:表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.

第五大类:字符串数据

char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.

varchar:长度也是设定的,最短为1字节,最长为8000个字节,尾部的空白会去掉.

text:长宽也是设定的,最长可以存放2G的数据.

第六大类:Unincode字符串数据

nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.

nvarchar:长度是设定的,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.

ntext:长度是设定的,最短为1字节,最长为2G.尾部的空白会去掉,储存一个字符需要2个字节.

第七大类:货币数据类型

money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节.

smallmoney:记录金额范围为:-214748.3648至214748.36487.需要4个字节.

第八大类:标记数据

timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新.

uniqueidentifier:用于识别数据库里面许多个表的唯一一个记录.

第九大类:二进制码字符串数据

binary:固定长度的二进制码字符串字段,最短为1,最长为8000.

varbinary:与binary差异为数据尾部是00时,varbinary会将其去掉

image:为可变长度的二进制码字符串,最长2G.

SQLServer跨数据库执行存储,并且这个存储带有表类型参数,需要怎么声明传入?

参数定义

单个参数

1 CREATE PROCEDURE HelloWorld1

2 @UserName VARCHAR(10)

3 AS

4 BEGIN

5 PRINT 'Hello' + @UserName + '!';

6 END;

7 go

1 DECLARE @RC int;

2 EXECUTE @RC = HelloWorld1 'Edward' ;

3 PRINT @RC;

4 go

HelloEdward!

IN、OUT、IN OUT

注:

SQL Server 的 OUTPUT 需要写在变量数据类型后面。

SQL Server 没有 IN OUT 关键字

OUTPUT 已经相当于 IN OUT 了。

1 CREATE PROCEDURE HelloWorld2

2 @UserName VARCHAR(10),

3 @OutVal VARCHAR(10) OUTPUT,

4 @InoutVal VARCHAR(10) OUTPUT

5 AS

6 BEGIN

7 PRINT 'Hello ' + @UserName + @InoutVal + '!';

8 SET @OutVal = 'A';

9 SET @InoutVal = 'B';

10 END;

11 go

1

2 DECLARE @RC int, @OutVal VARCHAR(10), @InoutVal VARCHAR(10);

3 BEGIN

4 SET @InoutVal = '~Hi~';

5 EXECUTE @RC = HelloWorld2 'Edward', @OutVal OUTPUT, @InoutVal OUTPUT;

6 PRINT @RC;

7 PRINT '@OutVal=' + @OutVal;

8 PRINT '@InoutVal=' + @InoutVal;

9 END

10 go

Hello Edward~Hi~!

@OutVal=A

@InoutVal=B

参数的默认值

1 CREATE PROCEDURE HelloWorld3

2 @UserName VARCHAR(10),

3 @Val1 VARCHAR(20) = ' Good Moning,',

4 @Val2 VARCHAR(20) = ' Nice to Meet you'

5 AS

6 BEGIN

7 PRINT 'Hello ' + @UserName + @Val1 + @Val2 + '!';

8 END;

9 go

1

2 DECLARE @RC int;

3 BEGIN

4 EXECUTE @RC = HelloWorld3 'Edward';

5 PRINT @RC;

6 EXECUTE @RC = HelloWorld3 'Edward', ' Good Night,';

7 PRINT @RC;

8 EXECUTE @RC = HelloWorld3 'Edward', ' Good Night,', ' Bye';

9 PRINT @RC;

10 END

11 go

Hello Edward Good Moning, Nice to Meet you!

Hello Edward Good Night, Nice to Meet you!

Hello Edward Good Night, Bye!

指定参数名称调用

此部分使用 “参数默认值”那一小节的存储过程。

用于说明当最后2个参数是有默认的时候,如何跳过中间那个。

1 DECLARE @RC int;

2 BEGIN

3 EXECUTE @RC = HelloWorld3 'Edward';

4 PRINT @RC;

5 EXECUTE @RC = HelloWorld3 'Edward', @Val1=' Good Night,';

6 PRINT @RC;

7 EXECUTE @RC = HelloWorld3 'Edward', @Val1=' Good Night,', @Val2=' Bye';

8 PRINT @RC;

9 EXECUTE @RC = HelloWorld3 'Edward', @Val2=' HeiHei ';

10 PRINT @RC;

11 END

12 go

Hello Edward Good Moning, Nice to Meet you!

Hello Edward Good Night, Nice to Meet you!

Hello Edward Good Night, Bye!

Hello Edward Good Moning, HeiHei !

二、数据库与数据表--2、SQLServer的数据类型

(1)文本类型: 字符数据包含任意字母、符号或数字字符的组合

char: 固定长度的非Unicode字符数据,最大长度为8000个字符

varchar: 可变长度的非Unicode数据,最大长度为8000个字符

text: 存储长文本信息,最大长度为2^31-1(2147483647)个字符

nchar: 固定长度的Unicode数据,最大长度为4000个字符

narchar: 可变长度的Unicode数据,最大长度为4000个字符

ntext: 存储长文本信息,最大长度为2^30-1(1073741823)个字符

(Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案,编码数据长度是非编码数据的两倍)

(2)整数类型

bigint: 占用8个字节,可表示范围-2^63~2^63-1之间的整数

int: 占用4个字节

smallint: 占用2个字节

tinint: 占用1个字节,可表示0~255之间的整数

(3)精确数字类型

decimal: -10^38~10^38-1之间固定精度和小数位的数字

numeric(常用): 功能等同于decimal

写法:

decimal(整数,小数)和numeric(整数,小数)——若不指定位数,默认18位整数,0位小数:

(4)近似数字(浮点)类型(很少用,可以用numeric替代)

float[(n)]: 表示范围-1.79E+308~1.79E+308

n 表示精度,在1-53之间取值,当n在1~24之间时,精度为7位有效数字,占用4个字节;当n在25~53之间时,精度为15位有效数字,占8个字节。

real: 表示范围-3.40E+38~3.40E+38占用4个字节,相当于float(24)

(5)日期类型

datetime: 允许范围1753-1-1至9999-1-1

smalldatetime(常用): 允许范围1900-1-1至2079-6-6

时间精度不同: datetime精确到3%秒;smalldatetime精确到1分钟

格式说明:

分隔符数字方式: 2013-08-20 或 08/20/2013

纯数字方式: 08202013

英文数字类型: Aug 20,2013

注意问题: 日期在使用的时候需要使用单引号'     ' 括起来

(6)货币类型

money: 货币数值介于-2^63与2^63-1之间,精确到货币单位的千分之一

smallmoney: 货币数据介于-214748.3648与214748.3648之间,精确到货币单位的千分之十

(7)位类型

bit: 表示“是/否”类型的数据(1/0,true/false)

(8)二进制类型

binary: 固定长度的二进制数据,最大8000个字节

vbinary: 可变长度的二进制数据,最大8000个字节

image: 可变长度的二进制数据,最大长度2^31个字节—— 应用场合: 可存储图片


网站名称:表类型SQLServer,excel2016图表类型
文章分享:http://cdweb.net/article/hcopoo.html