双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

SQL SERVER 2000存储过程中动态查询的问题

qinfei qinfei 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请花3分钟,看贴回贴,谢谢

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[sp_TestGetReportData]
-- Add the parameters for the stored procedure here
(
@Result varchar(2000) output --声明输出变量
,@strDataBase varchar(40)
)
AS

declare @nTodayIn float --本日入库
declare @strSql varchar(2000)

set @nTodayIn=0;
set @strDataBase='UFDATA_002_2009';
set @strSql='';
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

set @nTodayIn=0;

set @strSql='SELECT top 1 '+@nTodayIn+'= b.iquantity from '+@strDataBase +'.dbo.rdrecords b';
Exec(@strSql);

END

以上是存储过程全文。
环境:
本地机器SQL SERVER 2005
远程机器SQL SERVER 2000
上面的存储过程是保存在远程机器上面的,我在本地使用SQL SERVER 2005连接到远程机器上面打开。
@nTodayIn是变量,浮点数, b.iquantity 也是浮点数,@strDataBase 是变量,通过传参数来实现动态连接不同的数据库。

问题:
我执行的时候出现错误,提示如下
消息 8114,级别 16,状态 5,过程 sp_TestGetReportData,第 30 行
将数据类型 varchar 转换为 float 时出错。

我的疑问:
我这里是将查询到的一个浮点数写入到一个浮点变量中去,怎么出现这样的错误提示。

非常着急的问题,现在是半夜1点半了,谢谢。




...全文
评论 5
收藏 已收藏
分享
返回顶部
qinfei
MS-SQL Server 34,876 成员 254,635 内容