因同步数据业务需要,主键被设定为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,如下图所示: