插入表时值会更改

时间:2015-01-27 11:13:49

标签: sql sql-server ssms

我有这样的SQL语句:

select @constVal = FunctionWeight from dbo.FunctionWeights 
                      where FunctionWeights.FunctionName = 'MatchZIP';

 select @constVal as 'VALUE FROM LAST ZIP'    

 INSERT INTO #Temp2(RowNumber, ValFromFunc, FuncWeight, percentage)
             SELECT RowNumber, PercentMatch, @constVal, PercentMatch * @constVal
             from dbo.MatchZIP(@ZIP);

select * from #Temp2

输出:

VALUE FROM LAST ZIP
0.7

Rownumber   ValFromFunc FuncWeight  Percentage
81              100            1    100
82              100            1    100
83              100            1    100
84              100            1    100

问题:

@constVal的值按预期正确检索。在#Temp2的Insert语句中,我在#Temp2表的@constVal列中插入FuncWeight的值,而在FuncWeight列中插入的内容是1,而不管@constVal 1}}变量包含,我不明白为什么会发生这种情况。

我怀疑这可能是datatype问题。但是datatype中的FuncWeight列的Float(3)因此应该能够保持正确。

#Temp2

的数据类型
Rownumber int not null,
ValFromFunc float(3)null,
FuncWeight float(3) null,
Percentage float(3) null

仅供参考:@MatchFromZIP(@Zip)是一个表格值函数,只返回一个包含两个字段的表格,这些字段插入RownumberValFromFunc列。

0 个答案:

没有答案