Linqpad allows to bypass limitation of Sql SELECT CONTAINSTABLE?
I use Sql Server with a SELECT CONTAINSTABLE command to search for synonyms of a word. The problem is that the parameter "contains_search_condition" is limited to 4000 characters. Is there a way to get around this limitation with Linqpad?
Sample:
USE [Esp BOE - Derecho Civil]
GO
DECLARE @SQL_QUERY nvarchar(4000), @SQL_QUERY1 nvarchar(4000), @SQL_QUERY2 nvarchar(4000), @SQL_QUERY3 nvarchar(4000)
/* SET @SQL_QUERY = 'FORMSOF(INFLECTIONAL, codigo)' /
/ SET @SQL_QUERY = 'codigo|recopilación|compilación|reglamento|reglamentación|regla|norma|sistematización|sistema|metodización|método|ley' */
SET @SQL_QUERY1 = '(codigo|recopilación|compilación|reglamento|reglamentación|regla|norma|sistematización|sistema|metodización|método|ley|disciplina|mandamiento|pandectas|providencia|legislación|constitución|norma|ley|"código civil"|"código penal"|"código de señales"|codigo|recopilación|compilación|reglamento|reglamentación|regla|norma|sistematización|sistema|metodización|método|ley|disciplina|mandamiento|pandectas|providencia|legislación|constitución|norma|ley|"código civil"|"código penal"|"código de señales")'
SET @SQL_QUERY2 = '(casa|edificio|residencia|mansión|vivienda|hogar|domicilio|señas|dirección|habitación|piso|apartamiento|paradero|cuarto|techo|cubierto|fuego|lares|aposento|rincón|paraje|humos|construcción|apeadero|nido|cubil|manida|garito|caverna|chamizo|chiscón|choza|casucha|barracón|tugurio|madriguera|agujero|zahurda|chirlata|antro|tabernáculo|jaula|palomar|gallinero|conejera|gusanera|pocilga|picadero|aprisco|redil|cueva|cuartucho|chiribitil|zaquizamí|mechinal|socucho|cuchitril|tabuco|caramanchel|garigolo|tapera|chambucho|pastoforio|celda|palacio|palazuelo|pazo|villa|hotel|quinta|quintana|casaquinta|castillo|casal|museo|casón|casona|caserón|casaron|casilla|casuca|hocino|cigarral|carmen|carme|hormazo|cortijo|torre|bohío|masía|masería|caserío|rafal|rafalla|villoría|granja|alquería|chacra|chácara|quintería|estancia|cortijada|cobertizo|establo|corral|corrala|casar)'
SET @SQL_QUERY = @SQL_QUERY1 + ' AND ' + @SQL_QUERY2
SELECT SQL_TABLE.*, FT.*
FROM [Libro_BOE - Codigo Civil y legislacion complementaria] AS SQL_TABLE INNER JOIN
CONTAINSTABLE([Libro_BOE - Codigo Civil y legislacion complementaria], [Contenido], @SQL_QUERY) AS FT
ON FT.[KEY] = SQL_TABLE.Id
WHERE (ESTADO IS NULL OR ESTADO = ' ') ORDER BY RANK, Pagina, Parrafo, Linea, Palabra
Comments
Have you tried replacing nvarchar(4000) with nvarchar(max)?