在 SQL Server 2008 (TSQL) 中,我创建了一个这样的存储过程:
CREATE PROCEDURE SP_1_10_2
AS
declare @mostValuableBook nvarchar(255)
SELECT @mostValuableBook = Name
FROM books
WHERE price =
( SELECT MAX(price)
FROM books
WHERE izd LIKE '%BHV%' );
return @mostValuableBook
GO
但是,当我尝试执行它时:
declare @x nvarchar(255)
EXECUTE @x = SP_1_10_2;
SELECT 'The most expensive BHV book:', @x AS 'Name'
GO
我收到一个错误:
将 nvarchar 值“Internet Explorer 3 original”转换为数据类型 int 时转换失败。
好像问题就出在这条线上
EXECUTE @x = SP_1_10_2;
你能告诉我有什么问题吗?为什么它试图转换为int?