关键的条件-->DECLARE @OrderID INT SET @SQL1='SELECT @OrderID=OrderID FROM '+@TableName1+' WHERE OrderingID='+Convert(varchar,@OrderingID) EXEC(@SQL1) 我这样用,总是报@OrderID这边有问题,我试过用conver(varchar,@OrderID) 还是不行,请指教
DECLARE @OrderID INT
declare @SQL1 nvarchar(4000)
SET @SQL1='SELECT @OrderID=OrderID FROM '+@TableName1+' WHERE OrderingID='+Convert(varchar,@OrderingID)
EXEC sp_executesql @SQL1,N'@OrderID INT out',@OrderID out
select @OrderID
create procedure p_get
@OrderID INT output,
@TableName1 varchar(50),
@OrderingID int
as
SET @SQL1='SELECT @OrderID=OrderID FROM '+@TableName1+' WHERE OrderingID='+Convert(varchar,@OrderingID)
EXEC(@SQL1)
go
declare @orderid
exec p_get @orderid,'Tablename',2
select @orderid
DECLARE @OrderID INT
declare @SQL1 varchar(1000)
declare @TableName1 varchar(100)
set @SQL1=''
set @TableName1='TabName'
SET @SQL1='SELECT @OrderID=OrderID FROM '+@TableName1+' WHERE OrderingID=Convert(varchar,@OrderingID)'
DECLARE @OrderID INT
declare @SQL1 nvarchar(4000) --注意类型
SET @SQL1='SELECT @OrderID=OrderID FROM '+@TableName1+' WHERE OrderingID='+Convert(varchar,@OrderingID)
EXEC sp_executesql @SQL1,N'@OrderID INT out',@OrderID out