各位高手,请教个问题:@SQL= insert into myTable (col1,col2) values ('aaaaa','bbbb')
exec(@SQL)
set @ID=@@IDENTITYmyTable中有自增变量,在执行完操作后数据能正常插入,为何@ID为NULL?
exec(@SQL)
set @ID=@@IDENTITYmyTable中有自增变量,在执行完操作后数据能正常插入,为何@ID为NULL?
for insert
select @@IDENTITY as '@id'
select id=identity(int,1,1)
CREATE PROCEDURE editRecord
(@ID int output,
@SQL varchar(2000)
)
AS
set nocount on
if @ID=0
begin
Exec(@SQL)
set @ID=@@IDENTITY
end
else
Exec(@SQL)
if @@ERROR>0
set @ID=0
set nocount off
GO
接收的@SQL为插入语句,不知为何不能得到@ID?
select id=identity(int,1,1) into #--需要生成表
Insert into ZJDetail (Department,Company) values (@Department,@Company)
set @ID=@@IDENTITY不知用Exec后为什么就得不到了?
(@ID int output,
@SQL varchar(2000)
)
AS
set nocount on
if @ID=0 --这里没有执行
begin
Exec(@SQL)
set @ID=@@IDENTITY
end
else --这里执行了
Exec(@SQL)
if @@ERROR>0 --插入成功,这里也没有执行
set @ID=0
set nocount off
GO
CREATE PROCEDURE editRecord
(
@ID int output,
@SQL varchar(2000)
)
AS
set nocount onExec(@SQL)if @@ERROR=0
set @ID=@@IDENTITY
else
set @ID=0set nocount off
GO
if @ID=0
begin
Exec(@SQL)
set @ID=@@IDENTITY
end
这个应该执行了
调用是应该是
myCmd.Parameters("@ID").Direction = ParameterDirection.InputOutput
我确输成 myCmd.Parameters("@ID").Direction = ParameterDirection.Output
了,致使@ID的值没有传进去。
不过仍然谢谢各位,一会儿散分。