请教该函数哪里不对啊?
CREATE FUNCTION dbo.F_Pub_IfHaveColumn(
@TableName VARCHAR(50),
@ColumnName VARCHAR(50))
RETURNS INT
AS
BEGIN
DECLARE @s_Value VARCHAR(100),
@i_Value INT,
@sql NVARCHAR(500)
SET @s_Value=null
SET @sql=N'SELECT '+@s_Value+'=b.name FROM dbo.syscolumns a ,dbo.sysobjects b '+
N'WHERE a.id=b.id AND a.name= ' +char(39)+@ColumnName+char(39) +
N'AND b.name= ' +char(39)+@TableName+char(39)
GO
SET @i_Value=-1
If @@Error<>0
begin
If @s_Value is null
SET @i_Value=-1
else
SET @i_Value=0
end
else
RETURN -1
RETURN @i_Value
END
创建的时候报错
服务器: 消息 170,级别 15,状态 1,过程 F_Pub_IfHaveColumn,行 25
第 25 行: ')' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,行 3
必须声明变量 '@i_Value'。
服务器: 消息 137,级别 15,状态 1,行 5
必须声明变量 '@s_Value'。
服务器: 消息 137,级别 15,状态 1,行 7
必须声明变量 '@i_Value'。
服务器: 消息 137,级别 15,状态 1,行 9
必须声明变量 '@i_Value'。
服务器: 消息 178,级别 15,状态 1,行 13
在此上下文中不能使用带有返回值的 RETURN 语句。
服务器: 消息 137,级别 15,状态 1,行 13
必须声明变量 '@i_Value'。