创建用于转换为字符串的TSQL快捷方式
我想在SQL Server 2012上编写一个用户定义函数,将任何值转换为字符串/文本 当我检查SQL Server时,Convert函数参数的类型是“expression”,但我似乎无法将此类型用于我自己的用户定义函数。还有其他选择吗创建用于转换为字符串的TSQL快捷方式,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,我想在SQL Server 2012上编写一个用户定义函数,将任何值转换为字符串/文本 当我检查SQL Server时,Convert函数参数的类型是“expression”,但我似乎无法将此类型用于我自己的用户定义函数。还有其他选择吗 CREATE FUNCTION [dbo].[Text] ( @value expression ) RETURNS nvarchar(max) AS BEGIN RETURN Convert(nvarchar(max), @value); END
CREATE FUNCTION [dbo].[Text]
(
@value expression
)
RETURNS nvarchar(max)
AS
BEGIN
RETURN Convert(nvarchar(max), @value);
END
我收到以下错误消息:
列、参数或变量#1:找不到数据类型表达式。如果有人感兴趣,请找到答案:
CREATE FUNCTION [dbo].[Text]
(
@value SQL_VARIANT
)
RETURNS nvarchar(max)
AS
BEGIN
RETURN Convert(nvarchar(max), ISNULL(@value,''));
END
似乎做了我需要的事情。我不知道为什么要使用内置功能。但是,您需要的数据类型是sql\u variant 创建函数[dbo].[Text] ( @值sql_变量
)你为什么要这样做?您正在将现有的Convert函数包装到另一个函数中。这可能看起来是一个疯狂的想法,但它有助于抽象编码工作和处理公式表达式中的空值。我刚刚也找到了它,您比我先找到了:)参考: