@@ -264,55 +264,32 @@ private function queryString($tables)
264
264
// Has domain.table
265
265
if (isset ($ explicitDB [1 ])) {
266
266
return <<<SQL
267
- SELECT
268
- a.name,
269
- st.name AS type
270
- FROM
271
- {$ explicitDB [0 ]}..syscolumns a,
272
- {$ explicitDB [0 ]}..systypes b,
273
- {$ explicitDB [0 ]}..systypes s,
274
- {$ explicitDB [0 ]}..systypes st
275
- WHERE
276
- a.usertype = b.usertype AND
277
- s.usertype = a.usertype AND
278
- s.type = st.type AND
279
- st.name NOT IN (
280
- 'timestamp',
281
- 'sysname',
282
- 'longsysname',
283
- 'nchar',
284
- 'nvarchar'
285
- ) AND
286
- st.usertype < 100 AND
287
- object_name (
288
- a.id,
289
- db_id (' {$ explicitDB [0 ]}')
290
- ) = ' {$ explicitDB [1 ]}'
291
- SQL ;
267
+ SELECT
268
+ syscolumns.name,
269
+ systypes.name AS type
270
+ FROM
271
+ {$ explicitDB [0 ]}..syscolumns noholdlock
272
+ JOIN
273
+ {$ explicitDB [0 ]}..systypes noholdlock ON systypes.usertype = syscolumns.usertype
274
+ WHERE
275
+ systypes.name NOT IN ('timestamp', 'sysname', 'longsysname', 'nchar', 'nvarchar')
276
+ AND systypes.usertype < 100
277
+ AND object_name(syscolumns.id, db_id(' {$ explicitDB [0 ]}')) = ' {$ explicitDB [1 ]}'
278
+ SQL ;
292
279
} else {
293
280
return <<<SQL
294
- SELECT
295
- a.name,
296
- st.name AS type
297
- FROM
298
- syscolumns a,
299
- systypes b,
300
- systypes s,
301
- systypes st
302
- WHERE
303
- a.usertype = b.usertype AND
304
- s.usertype = a.usertype AND
305
- s.type = st.type AND
306
- st.name NOT IN (
307
- 'timestamp',
308
- 'sysname',
309
- 'longsysname',
310
- 'nchar',
311
- 'nvarchar'
312
- ) AND
313
- st.usertype < 100 AND
314
- object_name (a.id) = ' {$ tables }'
315
- SQL ;
281
+ SELECT
282
+ syscolumns.name,
283
+ systypes.name AS type
284
+ FROM
285
+ syscolumns
286
+ JOIN
287
+ systypes ON systypes.usertype = syscolumns.usertype
288
+ WHERE
289
+ systypes.name NOT IN ('timestamp', 'sysname', 'longsysname', 'nchar', 'nvarchar')
290
+ AND systypes.usertype < 100
291
+ AND object_name(syscolumns.id) = ' {$ tables }'
292
+ SQL ;
316
293
}
317
294
}
318
295
0 commit comments