create proc dbo.del_res_imgpid nvarchar(500)asSelect * from test_reader.f_split(pid,',')go
简单存储过程调用的函数但是报错如下:服务器: 消息 170,级别 15,状态 1,过程 del_res_img,行 3
第 3 行: 'pid' 附近有语法错误。
服务器: 消息 155,级别 15,状态 1,过程 del_res_img,行 7
'pid' 不是可以识别的 OPTIMIZER LOCK HINTS 选项。
Select * from test_reader.f_split('1,2,3,4',',')这样的情况就能查出数据,但是写进存储过程就报错
f_split函数如下:
CREATE function test_reader.f_split(@SourceSql nvarchar(4000),@StrSeprate nvarchar(10))
returns @temp table(a_id int identity(1,1),a varchar(100))
--实现split功能 的函数
--date :2003-10-14
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
简单存储过程调用的函数但是报错如下:服务器: 消息 170,级别 15,状态 1,过程 del_res_img,行 3
第 3 行: 'pid' 附近有语法错误。
服务器: 消息 155,级别 15,状态 1,过程 del_res_img,行 7
'pid' 不是可以识别的 OPTIMIZER LOCK HINTS 选项。
Select * from test_reader.f_split('1,2,3,4',',')这样的情况就能查出数据,但是写进存储过程就报错
f_split函数如下:
CREATE function test_reader.f_split(@SourceSql nvarchar(4000),@StrSeprate nvarchar(10))
returns @temp table(a_id int identity(1,1),a varchar(100))
--实现split功能 的函数
--date :2003-10-14
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
declare @id_count intset @id_count =Select count(*) from test_reader.f_split('s,ad,f',',')这样赋值不可以吗