Location: PHPKode > projects > DIY Blog > diy-blog/lib/propel/generator/templates/sql/base/mssql/drop.tpl
<?php foreach ($table->getForeignKeys() as $fk) { ?>
IF EXISTS (SELECT 1 FROM sysobjects WHERE type ='RI' AND name='<?php echo $fk->getName() ?>')
    ALTER TABLE <?php echo $table->getName() ?> DROP CONSTRAINT <?php echo $fk->getName()?>;
<?php } ?>
<?php 
	// this file is being included within another foreach() loop.
	// we want to create a global var that is aware of what instance
	// this is within that loop;
	global $__mssql_drop_count;

	if (!isset($__mssql_drop_count)) {
	    $__mssql_drop_count = 0;
	}
	
	$__mssql_drop_count++;	
?>
IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = '<?php echo $table->getName() ?>')
BEGIN
     DECLARE @reftable_<?php echo $__mssql_drop_count ?> nvarchar(60), @constraintname_<?php echo $__mssql_drop_count ?> nvarchar(60)
     DECLARE refcursor CURSOR FOR
     select reftables.name tablename, cons.name constraintname
      from sysobjects tables,
           sysobjects reftables,
           sysobjects cons,
           sysreferences ref
       where tables.id = ref.rkeyid
         and cons.id = ref.constid
         and reftables.id = ref.fkeyid
         and tables.name = '<?php echo $table->getName() ?>'
     OPEN refcursor
     FETCH NEXT from refcursor into @reftable_<?php echo $__mssql_drop_count ?>, @constraintname_<?php echo $__mssql_drop_count ?>
     while @@FETCH_STATUS = 0
     BEGIN
       exec ('alter table '+@reftable_<?php echo $__mssql_drop_count ?>+' drop constraint '+@constraintname_<?php echo $__mssql_drop_count ?>)
       FETCH NEXT from refcursor into @reftable_<?php echo $__mssql_drop_count ?>, @constraintname_<?php echo $__mssql_drop_count ?>
     END
     CLOSE refcursor
     DEALLOCATE refcursor
     DROP TABLE <?php echo $table->getName() ?>
	 
END

Return current item: DIY Blog