试试这样:
exec
('select '+@OrderID+'=OrderID,'+@CurrencyNumber+'=CurrencyNumber,'+@OptionFeatureCode+'=OptionFeatureCode,'+@AtTermTime+'=AtTermTime,'+@StartTime+'=StartTime,'+@PeriodNumber+'=PeriodNumber,'+@Account+'=Account,'+@OptionValue+'=OptionValue,'+@SettlementByUSD+'=SettlementByUSD,'+@SettlementByBase+'=SettlementByBase,'+@SwingType+'=SwingType,'+@FixRate+'=FixRate,'+@SwingRate+'=SwingRate,'+@SquarePremiun+'=SquarePremiun,'+@TS+'=TS from '+@TableName1+' where OrderingID=convert(varchar,'+@OrderingID+')')
exec
('select '+@OrderID+'=OrderID,'+@CurrencyNumber+'=CurrencyNumber,'+@OptionFeatureCode+'=OptionFeatureCode,'+@AtTermTime+'=AtTermTime,'+@StartTime+'=StartTime,'+@PeriodNumber+'=PeriodNumber,'+@Account+'=Account,'+@OptionValue+'=OptionValue,'+@SettlementByUSD+'=SettlementByUSD,'+@SettlementByBase+'=SettlementByBase,'+@SwingType+'=SwingType,'+@FixRate+'=FixRate,'+@SwingRate+'=SwingRate,'+@SquarePremiun+'=SquarePremiun,'+@TS+'=TS from '+@TableName1+' where OrderingID=convert(varchar,'+@OrderingID+')')
解决方案 »
- 将字符串转换为datetime 数据类型时失败,请高手帮助解决,谢谢!
- Backup and Recovery Best Practices for Microsoft SQL Server 2005
- 我该如何配置我的SQL关于CPU和内存,以达到最佳效果
- sql语句请教
- 一个比较难的复合查询~!不同日期用气量对应的不同日期的单价计算问题。
- 数据库关闭后,怎么重新打开,再继续编辑
- SELECT name FROM sysdatabases WHERE name = N'iSale_JXC' ---最后的N是干什么用的??
- 请问identity字段(自动递加)如何在不删除表的情况下,删除所有记录并重新从初始值开始递加。
- 在事务处理过程中,连接对对象不能被明确地切断?
- SQL server 2000
- 请问: 子句 LIMIT m OFFSET n 在SQL SERVER中,怎么写 (SQLSERVER中的TOP子句??)?
- 寻找用游标解决一个问题!
DECLARE @DEL_ERROR INT,@IST_ERROR INT,@IST2_ERROR INT
DECLARE @OrderID int
DECLARE @CurrencyNumber varchar(20)
DECLARE @OptionFeatureCode int
DECLARE @AtTermTime DateTime
DECLARE @StartTime DateTime
DECLARE @PeriodNumber int
DECLARE @Account varchar(50)
DECLARE @OptionValue Decimal(18,4)
DECLARE @SettlementByUSD bit
DECLARE @SettlementByBase bit
DECLARE @SwingType int
DECLARE @FixRate Decimal(18,4)
DECLARE @SwingRate Decimal(18,4)
DECLARE @TS TimeStamp
set @SQL='SELECT '+@OrderID+'=OrderID,'+@CurrencyNumber+'=CurrencyNumber,'+@OptionFeatureCode+'=OptionFeatureCode,'+@AtTermTime+'=AtTermTime,'
+@StartTime+'=StartTime,'+@PeriodNumber+'=PeriodNumber,'+@Account+'=Account,'+@OptionValue+'=OptionValue,'+@SettlementByUSD+'=SettlementByUSD,' + @SettlementByBase+'=SettlementByBase,'+@SwingType+'=SwingType,'+@FixRate+'=FixRate,'+@SwingRate+'=SwingRate,'+@SquarePremiun+'=SquarePremiun,'
+@TS+'=TS from '+@TableName1+' where OrderingID='+convert(varchar,@OrderingID)
EXEC(@SQL)
---你沒定義@SquarePremiun
VALUES ('+Convert(varchar,@OrderID)+','+Convert(varchar,@CurrencyNumber)+',10,'+Convert(varchar,@AtTermTime)+','+Convert(varchar,@StartTime)+','+Convert(varchar,@PeriodNumber)+','''+@Account+''','+Convert(varchar,@AccountID)+','+
Convert(varchar,@OptionValue)+','+Convert(varchar,@SettlementByBase)+','+Convert(varchar,@SettlementByUSD)+','+Convert(varchar,@SwingType)+','+Convert(Varchar,@FixRate)+','+Convert(varchar,@SwingRate)+')'
我經給你的一個例子
CREATE PROCEDURE Get_Data
@BID varchar(50) output
AS
declare @str nvarchar(4000)set @str='select @BID =BID from A where FeeOpted=1'
exec sp_executesql @str,N' @BID varchar(50) output',@BID output
GO
--
調用存儲過程
declare @a varchar(50),@str varchar(8000)
exec Update_Data @a output
select @a
--結果
/*
100,101
*/
+'(OrderID,CurrencyNumber,OptionFeatureCode,AtTermTime,
StartTime,PeriodNumber,Account,AccountID,OptionValue,
SettlementByBase,SettlementByUSD,SwingType,FixRate,SwingRate)
SELECT OrderID,CurrencyNumber,OptionFeatureCode,AtTermTime,
StartTime,PeriodNumber,Account,OptionValue,SettlementByUSD,
SettlementByBase,SwingType,FixRate,SwingRate,SquarePremiun,
TS from '+@TableName1+' where OrderingID='+convert(varchar,@OrderingID)
EXEC(@SQL)
但是我想知道一下临时变量的用法了,我一直很奇怪为什么我用exec就没办法把值放到临时变量中,而且在下面的使用中一直是有执行,但没结果,我上面那种临时变量的用法到底对不对哪?