alter proc [dbo].[CRM_INF_Verification_GY]
(
@InType varchar(50),
@Agentid varchar(50)
)
as
begin
DECLARE @str varchar(2000)
DECLARE @temptablename varchar(50)
DECLARE @int varchar(2000)
set @temptablename= 'CRM_INF_Verification_Q_'+@Agentid
print @temptablename
if not exists (select * from dbo.sysobjects where id = object_id(@temptablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
exec ('create table [dbo].['+@temptablename+']
(
ID int,
InType varchar(50),
NUM varchar(50),
Question varchar(50),
IsUse int,
CreateTime datetime,
CreateUser varchar(50)
) ')
exec (' insert into [dbo].['+@temptablename+'] (ID,InType,NUM,Question,IsUse,CreateTime,CreateUser)
select ID,InType,NUM,Question,IsUse,CreateTime,CreateUser from CRM_INF_Verification where Intype='+ @InType+' order by newID()')
end
else
begin
--SET @int =' select Count(*) from [dbo].['+@temptablename+']'
----exec( 'select Count(*) from [dbo].['+@temptablename+']')
--EXEC @int;
--print @int
--print @temptablename
--set @temptablename= 'CRM_INF_Verification_Q_'+@Agentid
--select @NUM=count(*) from CRM_INF_Verification_Q_1001
Select @int= Count(*) from [dbo].['+@temptablename+']
if (@int=0)
begin
exec (' insert into [dbo].['+@temptablename+'] (ID,InType,NUM,Question,IsUse,CreateTime,CreateUser)
select ID,InType,NUM,Question,IsUse,CreateTime,CreateUser from CRM_INF_Verification where Intype=' +@InType+' order by newID()')
print @temptablename
end
end
if(1=1)
exec(' select top 3 ID,Question from [dbo].['+@temptablename+']') ;
exec(' delete from [dbo].['+@temptablename+'] where id in (select top 3 ID from [dbo].['+@temptablename+'] )');
print @temptablename
end
------解决思路----------------------
--刚刚也有一个人问了,也是你?
declare @NUM INT;
declare @temptablename Nvarchar(20)
declare @sql Nvarchar(2000)
declare @num_out int;
declare @params nvarchar(200)
set @temptablename='BASMIG'
set @sql ='Select @num_out=count(*) from '+ @temptablename
set @params ='@num_out int output '
exec sp_executesql
@sql,
@params,
@num_out=@NUM OUTPUT
SELECT @NUM