Kan niet in 1 statement (tenzij je met cursors gaat werken en 'vieze' exec() statements

).
Maar waarom niet gewoon:
code:
1
2
| SELECT 'DROP INDEX tabelnaam.' + name FROM sysindexes
WHERE id in (SELECT ID FROM sysobjects WHERE name = 'tabelnaam') |
En dan het resultaat gebruiken.
Edit:
kom deze nog tegen via google
code:
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
| /******************************
DROP Indexes
******************************/
PRINT ''
PRINT ''
PRINT ''
PRINT '**********************'
PRINT '* Dropping Indexes *'
PRINT '**********************'
SET NOCOUNT ON
DECLARE @IndexNames TABLE(IndexName nvarchar(256))
DECLARE @IndexCount int
DECLARE @IndexName nvarchar(256)
INSERT @IndexNames (IndexName)
SELECT o.name + '.' + i.name AS IndexName
FROM sysindexes i, sysobjects o
WHERE i.indid > 0
AND i.indid < 255
AND (i.status & 64) = 0
AND i.id = o.id
AND o.type = 'U'
AND OBJECTPROPERTY(o.id, 'IsSystemTable') =0
AND OBJECTPROPERTY(o.id, 'IsConstraint') = 0
SELECT @IndexCount = Count(*) FROM @IndexNames
WHILE @IndexCount > 0
BEGIN
SET @IndexName = NULL
SELECT @IndexName = MIN(IndexName)
FROM @IndexNames
IF @IndexName <> 'NxT_Version.PK_NxT_Version'
BEGIN
EXECUTE('DROP INDEX ' + @IndexName)
PRINT ' Dropping Index ' + @IndexName
END
DELETE FROM @IndexNames WHERE IndexName = @IndexName
SET @IndexCount = @IndexCount - 1
END
SET NOCOUNT OFF
GO |
[
Voor 77% gewijzigd door
Annie op 24-01-2006 15:09
]