我在一个存储过程自动生成另一个对表的Insert的存储过程中,其它都对
但是在拼接SQL语句时做了如下
sql='create procedure ...'
sql=sql+'select @e=@@error '
sql=sql+'if @e=0....'
exec sql
这样的语句生成到最后,这个select语句在最终生成的存储过程中没有出现,是怎么回事,该怎么用法,求救
但是在拼接SQL语句时做了如下
sql='create procedure ...'
sql=sql+'select @e=@@error '
sql=sql+'if @e=0....'
exec sql
这样的语句生成到最后,这个select语句在最终生成的存储过程中没有出现,是怎么回事,该怎么用法,求救
set @sql='create procedure ... '
set @sql=@sql+'as begin 定义 @e select @e=@@error '
set @sql=@sql+'if @e=0 ...'
exec (''+@sql+'')
declare @e int
在最前面定义过,是否考虑在这里的存储过程就被执行掉了,而不是把它作为文字放在
需要的后面的那个存储过程中,这个怎么处理
否考虑在这里的存储过程就被执行掉了,而不是把它作为文字放在
需要的后面的那个存储过程中,这个怎么处理可以先判断删除:
if exists(select count(*) from sysobjects where name='procedure_name' and type='p')
drop procedure procedure_name可能答所非问
这个select语句我是想要做为文字原封不动地放在第二个过程中的。
现在第二个过程中没有,考虑就是第一个过程中exec 后把它做为语句执行了,而不是做为文字
原封不动地放到第二个过程中
create proc #test
asdeclare @sql nvarchar(4000)select @sql = ''select @sql = @sql + '
create proc #test2 as
declare @e int
select 1
select @e = @@error
select @e'
exec sp_executesql @sql
select @sql = 'exec #test2'
exec sp_executesql @sql#testdrop proc #test
drop proc #test2