Sql server 2008 存储过程返回nvarchar
我的代码如下:Sql server 2008 存储过程返回nvarchar,sql-server-2008,stored-procedures,Sql Server 2008,Stored Procedures,我的代码如下: CREATE PROCEDURE TEST1 (@id INT, @name NVARCHAR(30) OUTPUT) AS SELECT @name = NAME FROM TEACHER WHERE ID = @id; 及 顶部代码正常,但第二次出现错误: Msg 245,16级,状态1,程序测试2,第174行 转换nvarchar值“Nguy”时转换失败ễn Thanh Tùng'到数据类型int 您能帮我解释并修复它吗???您不能使
CREATE PROCEDURE TEST1
(@id INT, @name NVARCHAR(30) OUTPUT)
AS
SELECT @name = NAME
FROM TEACHER
WHERE ID = @id;
及
顶部代码正常,但第二次出现错误:
Msg 245,16级,状态1,程序测试2,第174行转换nvarchar值“Nguy”时转换失败ễn Thanh Tùng'到数据类型int 您能帮我解释并修复它吗???您不能使用
返回从SQL Server存储过程返回varchar
-您只能返回整数值
请参阅MSDN文档,其中明确说明:
过程可以返回一个称为返回码的整数值,以指示过程的执行状态
通常,此类值用于指示受存储过程影响的行数,或指示错误代码
如果需要返回字符串,则必须使用OUTPUT
参数或返回结果集(使用SELECT
语句)
CREATE PROCEDURE TEST2(@id INT)
AS
DECLARE @name NVARCHAR(30);
SELECT @name = NAME
FROM TEACHER
WHERE ID = @id;
RETURN @name;