以下两个存储过程都正确的
一:
create proc test
@table varchar(200)
as
declare @sql varchar(max)
set @sql='select * from '+@table
exec(@sql)
二:
if object_id (N'dbo.test', N'procedure') is null
Begin
declare @sql varchar(max)
set @sql = 'create procedure test @pram varchar(20) as select * from users where ID=@pram '
execute(@sql)
End
现在想合并一、二:
if object_id (N'dbo.test', N'procedure') is null
Begin
declare @sql varchar(max),@table varchar(200)
set @sql = 'create procedure test @pram varchar(20) as select * from '+@table+' where ID=@pram '
execute(@sql)
End
执行通过,但是没有创建存储过程 应该怎么改SQL存储
一:
create proc test
@table varchar(200)
as
declare @sql varchar(max)
set @sql='select * from '+@table
exec(@sql)
二:
if object_id (N'dbo.test', N'procedure') is null
Begin
declare @sql varchar(max)
set @sql = 'create procedure test @pram varchar(20) as select * from users where ID=@pram '
execute(@sql)
End
现在想合并一、二:
if object_id (N'dbo.test', N'procedure') is null
Begin
declare @sql varchar(max),@table varchar(200)
set @sql = 'create procedure test @pram varchar(20) as select * from '+@table+' where ID=@pram '
execute(@sql)
End
执行通过,但是没有创建存储过程 应该怎么改SQL存储
if object_id(N'dbo.test', N'procedure') is null
Begin
declare @sql varchar(max),@table varchar(200)
set @table='[表名]' --> 变量@table要先初始化值
set @sql='create procedure test @pram varchar(20) as select * from '+@table+' where ID=@pram '
exec(@sql)
End
WHERE name = 'test' AND type = 'P')
DROP PROCEDURE test
go
create proc test
@table varchar(200)
as
declare @sql varchar(max)
set @sql='select * from '+@table
exec(@sql)
这样子可以的 但是我不想先删除再创建
@table varchar(200)
as
if object_id (N'dbo.test', N'procedure') is null
Begin
declare @sql varchar(1000)
set @sql = 'create procedure test @pram varchar(20) as select * from '+@table+' where ID=@pram '
execute(@sql)
END
alter proc test
@table varchar(200)
as
declare @sql varchar(max)
set @sql='select * from '+@table
exec(@sql)
alter proc test
@table varchar(200)
as
declare @sql varchar(max)
set @sql='select * from '+@table
exec(@sql)
没有判断呀
add('create procedure getinfo');
add('@pram varchar(20),@table varchar(20),@ID int ');
add('as ');
add('declare @sql varchar(max)');
add('set');
add('@sql='select @pram from '+@table+'where ID=@ID'');这句怎么写 '+@table+'
end;
execSQL;
add('drop procedure GetList');
EXECSQL;
Close;
clear;
add('create procedure GetList');
add('@table varchar(20),@classes varchar(20)');
add('as');
add('begin');
add('declare @sql as varchar(100) ');
add('set @sql=''select * from ''+@table+'' where 1=1'' ');
add('IF(@classes<>0)');
add('set @sql = @sql+''and classes='' + @classes');
add('exec(@sql)');
add('end');