例如:
go
create proc aaa
@tb varchar(max)
@name1 varchar (max)
@in1 int output
as
exec('select '+@in1+'=[id] FROM '+tb+' WHRER [name1]='+@name1)
declare in1 int
exec aaa 'tb','张三',in1 output出错。
最后才发现时
exec('select '+@in1+'=[id] FROM '+tb+' WHRER [name1]='+@name1)这句话
'+@in1+'=[id] 还有 [name1]='+@name1
这样写,会出错的。请问怎么写才可以呢?
go
create proc aaa
@tb varchar(max)
@name1 varchar (max)
@in1 int output
as
exec('select '+@in1+'=[id] FROM '+tb+' WHRER [name1]='+@name1)
declare in1 int
exec aaa 'tb','张三',in1 output出错。
最后才发现时
exec('select '+@in1+'=[id] FROM '+tb+' WHRER [name1]='+@name1)这句话
'+@in1+'=[id] 还有 [name1]='+@name1
这样写,会出错的。请问怎么写才可以呢?
@tb varchar(max),
@name1 varchar(max),
@in1 int output
as
declare @sql nvarchar(1000)
set @sql='select @in1=[id] FROM '+@tb+' WHRER [name1]='''+@name1+''''
exec sp_executesql @sql,N'@in1 int output',@in1 output
@tb varchar(max),
@name1 varchar (max),
@in1 int output
as
begin
declare @sql varchar(8000)
set @sql='select '+@in1+'=[id] FROM '+tb+' WHRER [name1]='+@name1
exec(@sql)end
set @sql='select @in1=[id] FROM '+@tb+' WHRER [name1]='''+@name1+''''
exec sp_executesql @sql,N'@in1 int output',@in1 output
@tb nvarchar(max),
@name1 nvarchar(max),
@in1 int output
as
declare @sql nvarchar(2000)
set @sql='select @in1=[id] FROM '+@tb+' WHRER [name1]='''+@name1+''''
exec sp_executesql @sql,N'@in1 int output',@in1 output
GO
@tb varchar(max)
@name1 varchar (max)
@in1 int output
as
begin
exec('select '+@in1+'=[id] FROM '+tb+' WHRER [name1]='''+@name1+'''')
end
go