SQL - Problema con consulta (ayuda)

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Julio (6 intervenciones) el 06/02/2018 13:06:26
Hola tengo un problema con una consulta, me ejecuta la consulta pero 1. demora mucho, 2. me filtra por una provincia pero me tira datos de todos los (departamentos/partidos) de otros provincias, me estoy dando por vencido por que no la entiendo y en teoría es la consulta más simple que tengo que hacer. Saludos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT PROVINCIA.NOMBRE, sivila_datos_agrupados.semana,
      sivila_datos_agrupados.anio, sivila_datos_agrupados.id_etiologia, sivila_datos_agrupados.cant_muestras_menora1, sivila_datos_agrupados.menora1,
      sivila_datos_agrupados.cant_muestras_iguala1, sivila_datos_agrupados.iguala1, sivila_datos_agrupados.cant_muestras2a4, sivila_datos_agrupados.[2a4],
      sivila_datos_agrupados.cant_muestras5a9, sivila_datos_agrupados.[5a9], sivila_datos_agrupados.cant_muestras10a14, sivila_datos_agrupados.[10a14],
      sivila_datos_agrupados.cant_muestras15a24, sivila_datos_agrupados.[15a24], sivila_datos_agrupados.cant_muestras25a34, sivila_datos_agrupados.[25a34],
      sivila_datos_agrupados.cant_muestras35a44, sivila_datos_agrupados.[35a44], sivila_datos_agrupados.cant_muestras45a64, sivila_datos_agrupados.[45a64],
      sivila_datos_agrupados.cant_muestras_mayora65, sivila_datos_agrupados.mayora65, sivila_datos_agrupados.cant_muestras_sin_especificar,
      sivila_datos_agrupados.sin_especificar, sivila_datos_agrupados.total_muestras_realizadas
FROM PROVINCIA INNER JOIN
      sivila_rel_agrupados_etiologia_provincia ON PROVINCIA.CODIGO_PROVINCIA = sivila_rel_agrupados_etiologia_provincia.codigo_provincia INNER JOIN
      sivila_grupos_etiologias_notificacion_agrupada ON
      sivila_rel_agrupados_etiologia_provincia.id_sivila_grupo_etiologias_notificacion_agrupada = sivila_grupos_etiologias_notificacion_agrupada.id_sivila_grupo_etiologias_notificacion_agrupada
       INNER JOIN
      sivila_rel_grupos_etiologia_etiologia ON
      sivila_grupos_etiologias_notificacion_agrupada.id_sivila_grupo_etiologias_notificacion_agrupada = sivila_rel_grupos_etiologia_etiologia.id_sivila_grupo_etiologias_notificacion_agrupada
       INNER JOIN
      sivila_datos_agrupados ON
      sivila_grupos_etiologias_notificacion_agrupada.id_sivila_grupo_etiologias_notificacion_agrupada = sivila_datos_agrupados.id_sivila_grupo_etiologias_notificacion_agrupada
 
WHERE (sivila_datos_agrupados.anio = 2017) AND (PROVINCIA.NOMBRE = 'TIERRA DEL FUEGO')
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Leonardo Josué (1173 intervenciones) el 06/02/2018 16:18:22
Hola Julio:

1. El que tu consulta demore mucho no necesariamente tiene que significar que algo haya mal. Son muchas cosas que pueden afectar el rendimiento de la consulta, como puede ser Configuración del Servidor, uso de índices, tipos de columnas, números de registros en tus tablas, etc. No nos dices con qué BD's estás trabajando, pero algunos motores ofrecen algunas herramientas para el análisis de consultas para identificar posibles problemas. Podrías postear el script de creación de tus tablas para ver cómo tienes definidos tus índices y tratar de ver si omitiste algo.

2. Si la consulta no te está filtrando los datos como quieres, puede ser un problema con los mismos datos o con las relaciones en tus JOIN's. Es posible que si al hacer tantos JOIN's estés realizando algún producto cartesiano entre tus tablas. Para verificar esto, necesitaríamos que nos pongas un ejemplo de los datos que tienes en cada tabla y a partir de esos datos nos digas qué es lo que quieres filtrar.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Julio (6 intervenciones) el 08/02/2018 14:02:16
Gracias por la respuesta, el motor es ms sql,
SIVILA_Agrupado_Final_V1
no es mi base, yo solo me conecto por sql managment express
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Isaias (1921 intervenciones) el 08/02/2018 17:46:30
Con el permiso de Leonardo

Las tablas involucradas (las que estan en el WHERE), ¿Tienen indices?, ¿de cuantos registros estamos hablando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Julio (6 intervenciones) el 14/02/2018 14:29:06
Hola si tienen índices, y unos 15 millones, si ayuda a su entendimiento es así
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
-- SQL Manager Lite for SQL Server 4.1.1.46173
-- ---------------------------------------
-- Host      : SSQL0001
-- Database  : SNVS_0001
-- Version   : Microsoft SQL Server  2000 8.00.2066
 
--
-- Definition for table PROVINCIA_INDEC :
--
 
CREATE TABLE dbo.PROVINCIA_INDEC (
  Codigo_provincia int NULL,
  Nombre nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  Codigo_poblacion int NULL,
  id_Pais int NULL,
  codprovindec nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
)
ON [PRIMARY]
GO
 
--
-- Definition for table PARTIDO_INDEC :
--
 
CREATE TABLE dbo.PARTIDO_INDEC (
  Codigo_Partido int NULL,
  Nombre nvarchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  Codigo_provincia int NULL,
  Codigo_poblacion int NULL,
  codprovindec nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  codpartindec nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table LOCALIDAD_INDEC :
--
 
CREATE TABLE dbo.LOCALIDAD_INDEC (
  Codigo_localidad int NULL,
  Nombre nvarchar(200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  Codigo_partido int NULL,
  Codigo_poblacion int NULL,
  codprovindec nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  codpartindec nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  codlocindec nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table REGION_SANITARIA :
--
 
CREATE TABLE dbo.REGION_SANITARIA (
  CODIGO_REGION decimal(18, 0) IDENTITY(1, 1) NOT NULL,
  NOMBRE varchar(200) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  PERTENECE_A_PROVINCIA decimal(18, 0) NULL,
  TIPO_REGION decimal(18, 0) CONSTRAINT DF_REGION_SANITARIA_TIPO_REGION_SANITARIA DEFAULT 1 NOT NULL,
  CODIGO_SUBTIPO_REGION decimal(18, 0) NULL,
  CONSTRAINT PK_REGION_SANITARIA PRIMARY KEY CLUSTERED (CODIGO_REGION)
    WITH FILLFACTOR = 80
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table ESTABLECIMIENTO_EN_REGION_SANITARIA :
--
 
CREATE TABLE dbo.ESTABLECIMIENTO_EN_REGION_SANITARIA (
  CODIGO_ESTABLECIMIENTO int NOT NULL,
  CODIGO_REGION decimal(18, 0) NOT NULL
)
ON [PRIMARY]
GO
 
--
-- Definition for table LOCALIDAD :
--
 
CREATE TABLE dbo.LOCALIDAD (
  CODIGO_LOCALIDAD decimal(18, 0) IDENTITY(1, 1) NOT NULL,
  NOMBRE varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  CODIGO_PARTIDO decimal(18, 0) NOT NULL,
  codigo_poblacion decimal(18, 0) NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table PARTIDO :
--
 
CREATE TABLE dbo.PARTIDO (
  CODIGO_PARTIDO decimal(18, 0) IDENTITY(1, 1) NOT NULL,
  NOMBRE varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  CODIGO_PROVINCIA decimal(18, 0) NOT NULL,
  codigo_poblacion decimal(18, 0) NULL,
  CONSTRAINT PK_PARTIDO PRIMARY KEY CLUSTERED (CODIGO_PARTIDO)
)
ON [PRIMARY]
GO
 
 
 
--
-- Definition for table PROVINCIA :
--
 
CREATE TABLE dbo.PROVINCIA (
  CODIGO_PROVINCIA int NOT NULL,
  NOMBRE varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  codigo_poblacion decimal(18, 0) NULL,
  id_pais int NULL,
  idprovincia int NULL,
  Region nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  Codigo_Region int NULL,
  codigo_SIISA int NULL
)
ON [PRIMARY]
GO
 
--
-- Definition for table USUARIO :
--
 
CREATE TABLE dbo.USUARIO (
  login varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  password varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  NOMBRE varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  CODIGO_USUARIO int IDENTITY(1, 1) NOT NULL,
  CODIGO_PROVINCIA decimal(18, 0) NULL,
  CODIGO_PARTIDO decimal(18, 0) NOT NULL,
  CODIGO_LOCALIDAD decimal(18, 0) NOT NULL,
  CODIGO_ESTABLECIMIENTO decimal(18, 0) NOT NULL,
  CODIGO_REGION decimal(18, 0) NULL,
  ACCESO_C2 decimal(18, 0) CONSTRAINT DF_USUARIO_ACCESO_C2 DEFAULT 1 NULL,
  ACCESO_LESIONES smallint NULL,
  id_datos_personales int NULL,
  fecha_password datetime NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table MIEMBRO_DE_GRUPO_USUARIO :
--
 
CREATE TABLE dbo.MIEMBRO_DE_GRUPO_USUARIO (
  CODIGO_USUARIO int NOT NULL,
  CODIGO_GRUPO int NOT NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table GRUPO_USUARIO :
--
 
CREATE TABLE dbo.GRUPO_USUARIO (
  CODIGO_GRUPO int IDENTITY(1, 1) NOT NULL,
  NOMBRE varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  config_reducida tinyint NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table sivila_datos_agrupados :
--
 
CREATE TABLE dbo.sivila_datos_agrupados (
  id_sivila_datos_agrupados decimal(18, 0) IDENTITY(1, 1) NOT NULL,
  fecha_grabacion datetime NOT NULL,
  anio int NOT NULL,
  semana int NOT NULL,
  id_establecimiento int NOT NULL,
  id_sivila_grupo_etiologias_notificacion_agrupada int NOT NULL,
  id_etiologia int NOT NULL,
  cant_muestras_menora1 int NULL,
  menora1 int NOT NULL,
  cant_muestras_iguala1 int NULL,
  iguala1 int NOT NULL,
  cant_muestras2a4 int NULL,
  [2a4] int NOT NULL,
  cant_muestras5a9 int NULL,
  [5a9] int NOT NULL,
  cant_muestras10a14 int NULL,
  [10a14] int NOT NULL,
  cant_muestras15a24 int NULL,
  [15a24] int NOT NULL,
  cant_muestras25a34 int NULL,
  [25a34] int NOT NULL,
  cant_muestras35a44 int NULL,
  [35a44] int NOT NULL,
  cant_muestras45a64 int NULL,
  [45a64] int NOT NULL,
  cant_muestras_mayora65 int NULL,
  mayora65 int NOT NULL,
  cant_muestras_sin_especificar int NULL,
  sin_especificar int NOT NULL,
  codigo_usuario int NOT NULL,
  notificacion_nula int NOT NULL,
  total_muestras_realizadas int NOT NULL,
  solo_totales bit NULL,
  id_sivila_subgrupo_etiologias_notificacion_agrupada int NULL,
  CONSTRAINT PK_sivila_datos_agrupados PRIMARY KEY CLUSTERED (id_sivila_datos_agrupados)
    WITH FILLFACTOR = 80
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table ESTABLECIMIENTO :
--
 
CREATE TABLE dbo.ESTABLECIMIENTO (
  NOMBRE varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  NOMBRE_CALLE varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  NUMERO_CALLE varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  PISO varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  PREFIJO_TELEFONO varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  NUMERO_TELEFONO varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  NUMERO_FAX varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  DEPADMIN varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  Abreviatura varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  AT varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  N1 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  MOD01 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  AT01 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  N2 varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  TIPO varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  ESP varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  CAMAS float NULL,
  MARCA float NULL,
  CODIGO_ESTABLECIMIENTO int IDENTITY(1, 1) NOT NULL,
  CODIGO_SIISA bigint NULL,
  TIPOLOGIA_SIISA varchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  CODIGO_LOCALIDAD decimal(18, 0) NULL,
  SECTOR_ESTABLECIMIENTO nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  TIPO_ESTABLECIMIENTO nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table etiologias :
--
 
CREATE TABLE dbo.etiologias (
  id_etiologia int IDENTITY(1, 1) NOT NULL,
  descripcion varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  id_etiologia_padre int NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table sivila_subgrupos_etiologias_notificacion_agrupada :
--
 
CREATE TABLE dbo.sivila_subgrupos_etiologias_notificacion_agrupada (
  id_sivila_subgrupo_etiologias_notificacion_agrupada int IDENTITY(1, 1) NOT NULL,
  id_sivila_grupo_etiologias_notificacion_agrupada int NULL,
  Descripcion varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
  activo tinyint NULL,
  Orden int NULL
)
ON [PRIMARY]
GO
 
--
-- Definition for table sivila_rel_grupos_etiologia_etiologia :
--
 
CREATE TABLE dbo.sivila_rel_grupos_etiologia_etiologia (
  id_etiologia int NOT NULL,
  id_sivila_grupo_etiologias_notificacion_agrupada int NOT NULL,
  id_sivila_subgrupo_etiologias_notificacion_agrupada int NOT NULL,
  Activo tinyint NULL
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table sivila_grupos_etiologias_notificacion_agrupada :
--
 
CREATE TABLE dbo.sivila_grupos_etiologias_notificacion_agrupada (
  id_sivila_grupo_etiologias_notificacion_agrupada int IDENTITY(1, 1) NOT NULL,
  descripcion varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
  Activo tinyint NULL,
  Activo_Consulta tinyint NULL,
  CONSTRAINT PK_sivila_grupos_etiologias_notificacion_agrupada PRIMARY KEY CLUSTERED (id_sivila_grupo_etiologias_notificacion_agrupada)
)
ON [PRIMARY]
GO
 
 
--
-- Definition for table sivila_rel_agrupados_etiologia_provincia :
--
 
CREATE TABLE dbo.sivila_rel_agrupados_etiologia_provincia (
  codigo_provincia int NULL,
  id_sivila_grupo_etiologias_notificacion_agrupada int NULL,
  id_etiologia int NULL
)
ON [PRIMARY]
GO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Isaias (1921 intervenciones) el 14/02/2018 18:51:13
Excelente codigo T-SQL, por lo visto esta usted trabajando con una version de sql server antigua (2000), ¿Y el script de creacion de los indices?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Julio (6 intervenciones) el 15/02/2018 12:55:12
nop pense que lo tenía, no hay uno creado, estoy en el horno
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Isaias (1921 intervenciones) el 15/02/2018 17:16:18
Casi TODA la documentacion de SQL Server 2000 ha sido retirada de la red, ejecute ambas consultas que a continuacion le envio y muestre el resultado

1
2
EXEC sp_helptext sp_help_fulltext_tables;
EXEC sp_helptext sp_help_fulltext_columns;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Julio (6 intervenciones) el 16/02/2018 11:51:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
create procedure sys.sp_help_fulltext_tables
 @fulltext_catalog_name  sysname = NULL,   -- full-text catalog name
 @table_name nvarchar(517) = NULL -- table name
as
 -- FULLTEXT MUST BE ACTIVE IN DATABASE --
 if DatabaseProperty(db_name(), 'IsFulltextEnabled') = 0
 begin
  raiserror(15601,-1,-1)
  return 1
 end
 
    -- get current db name
 declare @curdbname sysname
 select @curdbname = db_name()
 
 -- CATALOG MUST EXIST IF SPECIFIED --
 declare @ftcatid smallint
 if @fulltext_catalog_name is not null
 begin
  select @ftcatid = fulltext_catalog_id from sys.fulltext_catalogs where name = @fulltext_catalog_name
  if @ftcatid is null
  begin
   declare @curdbnamelen int
   select @curdbnamelen = LEN(@curdbname)
   raiserror(7641,-1,-1,@fulltext_catalog_name, @curdbnamelen, @curdbname)
   return 1
  end
 end
 
 if @table_name is not null
 begin
  -- VALIDATE TABLE NAME --
  -- (1) Must exist in current database
  declare @objid int
  select @objid = object_id(@table_name, 'local')
  if @objid is null
  begin
   raiserror(15009,-1,-1 ,@table_name, @curdbname)
   return 1
  end
  -- (2) Must be a user table or indexed view (and not a temp table)
  if (ObjectProperty(@objid, 'IsUserTable') = 0 AND (ObjectProperty(@objid, 'IsView') = 0 OR ObjectProperty(@objid, 'IsIndexed') = 0 )) OR
      substring(parsename(@table_name,1),1,1) = '#'
  begin
   raiserror(15218,-1,-1 ,@table_name)
   return 1
  end
 end
 
 -- We are using schema owner as table owner now. Check with garish for their decision on using schema owner
 -- in place of table owner for backward compatibility issue.
 select  ssche.name as TABLE_OWNER,
  sobj.name as TABLE_NAME,
  sidx.name as FULLTEXT_KEY_INDEX_NAME,
  sidxcol.column_id as FULLTEXT_KEY_COLID,
  sftidx.is_enabled as FULLTEXT_INDEX_ACTIVE,
  scat.name as FULLTEXT_CATALOG_NAME
 from    sys.objects as sobj
  join sys.fulltext_indexes as sftidx on (sobj.object_id = sftidx.object_id)
  join sys.indexes as sidx on(sftidx.unique_index_id = sidx.index_id and sftidx.object_id = sidx.object_id)
  join sys.schemas as ssche on (sobj.schema_id = ssche.schema_id)
  join sys.index_columns as sidxcol on (sftidx.object_id = sidxcol.object_id and sftidx.unique_index_id = sidxcol.index_id)
  left outer join sys.fulltext_catalogs as scat on (scat.fulltext_catalog_id = sftidx.fulltext_catalog_id)
 where(
   @fulltext_catalog_name is null or
   sftidx.fulltext_catalog_id = @ftcatid
   ) and
   (
   @table_name is null or
   sobj.object_id = @objid
   )
 
order by TABLE_OWNER, TABLE_NAME



-- SUCCESS --
return 0 -- sp_help_fulltext_tables
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Julio (6 intervenciones) el 16/02/2018 11:51:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
create procedure sys.sp_help_fulltext_columns
 @table_name nvarchar(517) = NULL,  -- table name
 @column_name sysname = NULL   -- column name
as
 -- FULLTEXT MUST BE ACTIVE IN DATABASE --
 if DatabaseProperty(db_name(), 'IsFulltextEnabled') = 0
 begin
  raiserror(15601,-1,-1)
  return 1
 end
 
 if @table_name is not null
 begin
  -- VALIDATE TABLE NAME --
  -- (1) Must exist in current database
  declare @objid int
  select @objid = object_id(@table_name, 'local')
  if @objid is null
  begin
   declare @curdbname sysname
   select @curdbname = db_name()
   raiserror(15009,-1,-1 ,@table_name, @curdbname)
   return 1
  end
  -- (2) Must be a user table or indexed view (and not a temp table)
  if (ObjectProperty(@objid, 'IsUserTable') = 0 AND (ObjectProperty(@objid, 'IsView') = 0 OR ObjectProperty(@objid, 'IsIndexed') = 0 )) OR
      substring(parsename(@table_name,1),1,1) = '#'
  begin
   raiserror(15218,-1,-1 ,@table_name)
   return 1
  end
 
  -- VALIDATE COLUMN NAME --
  if @column_name is not null
  begin
   declare @typename sysname
   select @typename = type_name(ColumnProperty(@objid, @column_name, 'SystemType'))
   if @typename is null
   begin
    raiserror(15104,-1,-1,@table_name,@column_name)
    return 1
   end
  end
 
 end
 
 -- We are using schema owner as table owner now. Check with garish for their decision on using schema owner
 -- in place of table owner for backward compatibility issue.
 select distinct
   ssche.name as TABLE_OWNER,
   sftcol.object_id as TABLE_ID,
   sobj.name as TABLE_NAME,
   scol.name as FULLTEXT_COLUMN_NAME,
   sftcol.column_id as FULLTEXT_COLID,
   scol2.name as FULLTEXT_BLOBTP_COLNAME,
   case sftcol.type_column_id
        when 0 then null
                 else sftcol.type_column_id
   end as FULLTEXT_BLOBTP_COLID,
            sftcol.language_id as FULLTEXT_LANGUAGE
 from
   sys.fulltext_index_columns as sftcol join sys.objects as sobj on(sftcol.object_id = sobj.object_id)
   join sys.columns as scol on (sftcol.object_id = scol.object_id and sftcol.column_id = scol.column_id)
   left outer join sys.columns as scol2 on (sftcol.object_id = scol2.object_id and sftcol.type_column_id = scol2.column_id)
   join sys.schemas as ssche on (sobj.schema_id = ssche.schema_id)
 where  (
     @column_name is null or
     scol.name = @column_name
   )
   AND (
     @table_name is null or
     sobj.object_id = @objid
   )
 order by TABLE_OWNER, TABLE_NAME, FULLTEXT_COLID

-- SUCCESS --
return 0 -- sp_help_fulltext_columns
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Problema con consulta (ayuda)

Publicado por Isaias (1921 intervenciones) el 16/02/2018 17:07:56
Ok, los procedimientos existen, ahora ejecutelos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar