我创建了一个在全文数据库中执行搜索的存储过程。程序本身可以创造奇迹,但是当我尝试使用该程序在visual studio中创建数据集时,我无法获得结果列来显示!我怎么能让这个工作?
这是数据集屏幕的链接
http://i.stack.imgur.com/2YEfs.png
这是我的程序
ALTER PROCEDURE [dbo].[Cliente_tSearch]
(
@nombre nvarchar(100) = NULL,
@proveedor int = 0,
@searchType int = 0
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @bool nvarchar(10) =
case
when @searchType = 0 then 'AND'
when @searchType = 1 then 'OR'
when @searchType = 2 then 'AND NOT'
end
set @nombre = LTRIM(rtrim(@nombre))
if (CHARINDEX(char(32),@nombre,1)>0)
begin
set @nombre = REPLACE(replace(replace(@nombre,' ','<>'),'><',''),'<>',' ')
set @nombre = REPLACE(@nombre,' ','*"'+ @bool +'"')
end
set @nombre = '"'+ @nombre +'*"'
if(@nombre is not null) begin
select
p.Nombre as 'Corporativo',
c.Referencia as 'Referencia',
c.Nombres as 'Nombres',
cp.tel_movil1 as 'Cel',
cp.tel_casa as 'Res',
case
when cd.Inactivo = 0 then 'Activo'
when cd.Inactivo = 1 then 'Inactivo'
end as 'Estado'
from Clientes c
JOIN Clientes_Datos cd on cd.Cliente = c.Código and cd.Proveedor =
case
when @proveedor > 0 then @proveedor else cd.Proveedor end
LEFT JOIN (SELECT Cliente, tel_movil1, tel_Casa from clientes_perfil) cp on cp.Cliente = c.Código
LEFT JOIN (Select Código,Nombre from Proveedores) p on p.código = cd.proveedor
INNER JOIN
CONTAINSTABLE(Clientes,(nombres,referencia),@nombre) as KEY_TBL
on c.Código = KEY_TBL.[KEY]
order by RANK desc;
end
else if @nombre is null begin
select top 500
p.Nombre as 'Corporativo',
c.Referencia as 'Referencia',
c.Nombres as 'Nombres',
cp.tel_movil1 as 'Cel',
cp.tel_casa as 'Res',
case
when cd.Inactivo = 0 then 'Activo'
when cd.Inactivo = 1 then 'Inactivo'
end as 'Estado'
from Clientes c
JOIN Clientes_Datos cd on cd.Cliente = c.Código and cd.Proveedor =
case
when @proveedor > 0 then @proveedor else cd.Proveedor end
LEFT JOIN (select Cliente, tel_movil1, tel_casa from Clientes_Perfil) cp on cp.Cliente = c.Código
LEFT JOIN (Select Código,Nombre from Proveedores) p on p.código = cd.proveedor
order by 3
end
END