ms sql 主键自动生成32位guid

因同步数据业务需要,主键被设定为varchar(32),而自动生成的newid()是36位的,需要将中间的横线去掉,才合适。为此写如下标量函数:

CREATE FUNCTION get_32guid
(
@id uniqueidentifier
)
RETURNS varchar(32)
AS
BEGIN


-- Return the result of the function
RETURN REPLACE(CONVERT(varchar(36), @id),'-','')
END
GO

然后在表设计的时候,指定字段长度为varchar(32),设置为主键,默认值设置为:([dbo].[get_32guid](newid())),即可自动生成32位guid,如下图所示:

 

posted @ 2016-11-11 10:09  秦潇湘  阅读(2085)  评论(0编辑  收藏  举报