SQL SERVER 2000存储过程中动态查询的问题
请花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点半了,谢谢。
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点半了,谢谢。
...全文



