Completed
Push — master ( 1e6bea...2b8e59 )
by Freek
01:50
created

Sqlsrv   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 1
lcom 1
cbo 0
dl 0
loc 26
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A dropAllTables() 0 5 1
1
<?php
2
3
namespace Spatie\MigrateFresh\TableDroppers;
4
5
use DB;
6
7
class Sqlsrv implements TableDropper
8
{
9
    private $constraintDropScript = '
10
        DECLARE @Sql NVARCHAR(500) DECLARE @Cursor CURSOR
11
        SET @Cursor = CURSOR FAST_FORWARD FOR
12
        SELECT DISTINCT sql = \'ALTER TABLE [\'+tc2.CONSTRAINT_SCHEMA+\'].[\' + tc2.TABLE_NAME + \'] DROP [\' + rc1.CONSTRAINT_NAME + \']\'
13
        FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc1
14
        LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc2 ON tc2.CONSTRAINT_NAME =rc1.CONSTRAINT_NAME
15
        
16
        OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql
17
        
18
        WHILE (@@FETCH_STATUS = 0)
19
        BEGIN
20
        PRINT @Sql
21
        Exec (@Sql)
22
        FETCH NEXT FROM @Cursor INTO @Sql
23
        END
24
        
25
        CLOSE @Cursor DEALLOCATE @Cursor';
26
27
    public function dropAllTables()
28
    {
29
        DB::unprepared($this->constraintDropScript);
30
        DB::unprepared("exec sp_MSforeachtable 'DROP TABLE ?'");
31
    }
32
}
33