例如:
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
Conversion failed when converting the varchar value 'select ' to data type int.
编译能通过,但使用时报错了
exec aaa 'tb','Filed',@in1 outputIncorrect syntax near 'Name1'.
exec aaa 'tb','Filed',@in1 outputIncorrect syntax near 'Name1'.
我见他的方法好记,我就先试试,你用的方法我也试过了,会出这个
编译能通过,但使用时报错了
这个exec aaa 'tb','Filed',@in1 outputIncorrect syntax near 'Name1'.
@tb nvarchar(max),
@name1 nvarchar (max),
@in1 int output
as
declare @sql nvarchar(2000)
set @sql='select @in1=[id] FROM '+@tb+' WHRER [Name]='''+@name1+''''
exec sp_executesql @sql,N'@in1 int output',@in1 output仍然报Incorrect syntax near 'Name1'.这个错误。
数据表@name1原来是 varchar(max)的,我改为 nvarchar还是出这个错误。
WHRER [name1]='''+@name1+''''这里有问题。name1 用varchar 或者nvarchar都不行。数据表里的也对应着改的
提示语法错误
whrer
都是copy惹得祸啊。55555