CREATE PROCEDURE randomid
@tiku int,
@driveType int
AS
declare @sqlStr varchar(500) set @sqlStr = '' --> 赋值,不赋值为NULLif @tiku <>1
begin
--> UNIOn all 前面要有一个空格;变量 @tiku 抽出来
set @sqlStr=@sqlStr+' UNIOn all SELECT id FROM (SELECT top 1000 id,newid() x FROM paper WHERE tiku='+ltrim(@tiku)+' ORDER BY newid()) x' --> 
end
if @driveType <>1
begin
--> UNIOn all 前面要有一个空格;变量 @driveType 抽出来
set @sqlStr=@sqlStr+' UNIOn all SELECT id FROM (SELECT top 1000 id,newid() x FROM paper WHERE driveType='+ltrim(@driveType)+' and tiku=1 ORDER BY newid()) x'
end
exec('SELECT id FROM (SELECT top 1320 id, newid() x FROM paper WHERE driveType=1 and tiku=1 ORDER BY newid() ) x' + @sqlStr)
GO