Sql server SQL 2000函数-无法返回varchar
我目前正在处理一些旧的SQL 2000。我需要一个返回字符串的函数。就这样Sql server SQL 2000函数-无法返回varchar,sql-server,Sql Server,我目前正在处理一些旧的SQL 2000。我需要一个返回字符串的函数。就这样 ALTER FUNCTION [dbo].[tmp] ( @CurrentCheck VARCHAR(80) = '10161681' ) RETURNS VARCHAR(2000) AS BEGIN RETURN CAST('fred' AS VARCHAR(2000)); END 这将显示一条错误消息:42000-[SQL Server]将数据类型varcha
ALTER FUNCTION [dbo].[tmp] ( @CurrentCheck VARCHAR(80) = '10161681' )
RETURNS VARCHAR(2000)
AS
BEGIN
RETURN CAST('fred' AS VARCHAR(2000));
END
这将显示一条错误消息:42000-[SQL Server]将数据类型varchar转换为int时出错
不确定int来自哪里。奇怪的是,如果我用int来代替“fred”,它就会工作。但我需要的是返回一个VARCHAR
RETURN 'fred'
给出了相同的错误
RETURN 314
很遗憾,这不是一个varchar,而是一个int。返回varchar行有什么问题吗
此外,如果我加入
Declare @logid varchar(50);
RETURN @logid
它工作正常,返回一个空行
但是
再次导致它失败,并出现相同的int错误…如何调用该函数?能否显示在SSMS或查询分析器中运行的产生此错误的完整代码?是否确定[dbo].[tmp]是一个函数,而不是一个过程?程序仅限于返回int.lol。好的,我明白了。Navicat正在按程序运行这些功能。谢谢格林和马丁,在你们两人中间我找到了答案。只是旧版本Navicat中的一个bug。
Declare @logid varchar(50);
SET @logid = 'fred'
RETURN @logid