日度归档:2019年9月9日

mssql sqlserver 查询一个变量(或数据列)的数据类型的方法分享


摘要:
下文讲述使用sql脚本获取一个变量或数据列的数据类型的方法分享,如下所示:
实验环境:sqlserver 2017


今天同事给我提了一个有趣的问题,如果获取一张数据表中列的数据类型呢?
当然,我们可以通过很多中方式获取:
通过建表语句,直接查看数据类型
如果系统函数
SQL_VARIANT_PROPERTY查看表达式的数据类型
下文将举例讲述使用
SQL_VARIANT_PROPERTY获取表达式的数据类型的方法,如下:

 declare @maomao1 int
declare @maomao2 decimal(10,2)
declare @maomao3 bit 
declare @maomao4 bigint
declare @maomao5 varchar(10)

set @maomao1 =89
set @maomao2=19.8
set @maomao3=1
set @maomao4=980
set @maomao5 ='sqlblog'
select SQL_VARIANT_PROPERTY(@maomao1,'BaseType')
,SQL_VARIANT_PROPERTY(@maomao2,'BaseType')
,SQL_VARIANT_PROPERTY(@maomao3,'BaseType')
,SQL_VARIANT_PROPERTY(@maomao4,'BaseType')
,SQL_VARIANT_PROPERTY(@maomao5,'BaseType')

go
---数据表列类型获取
create table [maomao365.com]
(keyId int identity,info nvarchar(10))
go
insert into [maomao365.com](info)values
(N'test')
select SQL_VARIANT_PROPERTY(keyId,'BaseType')
,SQL_VARIANT_PROPERTY(info,'BaseType') from 
[maomao365.com]
go
truncate table [maomao365.com]
drop     table [maomao365.com]


注意事项:
SQL_VARIANT_PROPERTY 获取数据类型的表达式的值不能为null

相关阅读:

SQL_VARIANT_PROPERTY关键字应用说明

mssql_sqlserver_表达式类型获取_9709

mssql_sqlserver_表达式类型获取_9709

mssql sqlserver 设置组合主键的方法分享


摘要:
下文讲述sqlserver中设置组合主键的方法,如下所示:
实验环境:sql server 2008 R2



sqlserver组合主键简介

sqlserver组合主键:在sqlserver中,由一个列以上的多列组合的主键,我们称之为 “组合主键”
组合主键:代表这些多列所组成的值在数据表中唯一
组合主键:所涉及列都不能为null


sqlserver组合主键设置方法

      create table [maomao365.com]
(keyIdA int not null ,
 keyIdB int not null)
go
---设置组合主键的方法
alter   table   [maomao365.com] 
  add   constraint   pk_maomao   primary   key   (keyIdA,keyIdB)  
---生成基础数据
insert into [maomao365.com]
(keyIdA,keyIdB)values
(1,2),(4,5),(6,7),
(11,21),(14,15),(26,27) 
go

select * from [maomao365.com]
go
truncate table [maomao365.com]
drop     table [maomao365.com]

mssql sqlserver创建一个标量值函数的方法分享


摘要:
下文讲述sqlserver中创建一个标量值函数的方法,如下所示:
实验环境:sql server 2008 R2



标量值函数简介

在sqlserver中,如果一个函数返回一个单一值,我们将这一类sql函数称之为“标量值函数”。
标量值函数应用于sqlserver的脚本编写中,我们使代码更加的整齐,并达到代码的复用。
例:
我们需将一列的数值,进行复杂的计算,然后再更新至另一列上,此时我们就可以建立一个标量型函数,然后在update中,使用此标量型函数

标量值函数创建及应用举例方法

/*创建标量函数
对传入参数乘以100 并加上108
*/
create function fn_test
(@a int) --输入参数
returns   int --标量返回值类型
begin
  declare @b int 
   set @b =@a*100+108;
   return @b  --函数返回值
end
go

create table [maomao365.com]
(keyIdA int,keyIdB int)
go

---生成基础数据
insert into [maomao365.com]
(keyIdA,keyIdB)values
(1,2),(4,5),(6,7),
(11,21),(14,15),(26,27)
go

update [maomao365.com]
set keyIdB = dbo.fn_test(keyIdB)
go

select * from [maomao365.com]

 
go
truncate table [maomao365.com]
drop     table [maomao365.com]

drop function fn_test 
mssql_sqlserver_标量函数举例_9704

mssql_sqlserver_标量函数举例_9704