2013-07-03 64 views
-6

为什么会出现此错误?必须在SQL Server存储过程中声明标量变量

必须声明@wight

一个标量变量在我的存储过程?

create PROCEDURE [dbo].Vector 
    (@word Varchar, @Wight double) 
AS 
SET NOCOUNT ON; 

SELECT 
    DocId, TermWight * @Wight as "ss", word, id, 
    wordid, IDF, TFij  
FROM   TermWeight 

WHERE (word = @word) and (TermWight <> 0) 
+5

因为您使用的是尚未声明的变量。 –

+3

没有'double'数据类型。当你修复时,你将得到'必须声明标量变量“@word”.' –

+0

@wight变量的问题 – AAHN

回答

1

给你:

CREATE PROCEDURE [dbo].Vector 
(@word VARCHAR (100) , @Wight float) 
AS 
SET NOCOUNT ON; 

SELECT 
    DocId , 
    TermWight * @Wight AS 'ss' , 
    word , 
    id , 
    wordid , 
    IDF , 
    TFij 
FROM TermWeight 

WHERE (word = @word) 
AND (TermWight <> 0) 

两个问题之前。在我的示例中,Varchar的长度应该是(100)。正如别人提到的Double不是sql类型float是最接近的等价物(我相信)

2

您正在使用@word,但它没有在任何地方声明。

+2

为什么会解释消息“必须声明一个标量变量* @ wight *” –

+2

不公平,他在我发布我的答案后编辑了问题! –

相关问题