aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/db_tools.php
diff options
context:
space:
mode:
authorMaat <maat-pub@mageia.biz>2013-11-30 14:43:45 +0100
committerMaat <maat-pub@mageia.biz>2013-11-30 14:47:18 +0100
commit33193de3c84f52917ba5c340591cc2d97dc42ebb (patch)
tree4b6635e7e8e8b9e69a3e58689a6f9c1241dee8f3 /phpBB/includes/db/db_tools.php
parent41b19431251f19f607d192a555fdf1e57fb36643 (diff)
parent446ea9928d8373cf7695d3adda6d5ee30d5f94b4 (diff)
downloadforums-33193de3c84f52917ba5c340591cc2d97dc42ebb.tar
forums-33193de3c84f52917ba5c340591cc2d97dc42ebb.tar.gz
forums-33193de3c84f52917ba5c340591cc2d97dc42ebb.tar.bz2
forums-33193de3c84f52917ba5c340591cc2d97dc42ebb.tar.xz
forums-33193de3c84f52917ba5c340591cc2d97dc42ebb.zip
Merge remote-tracking branch 'upstream/prep-release-3.0.12'
Diffstat (limited to 'phpBB/includes/db/db_tools.php')
-rw-r--r--phpBB/includes/db/db_tools.php16
1 files changed, 16 insertions, 0 deletions
diff --git a/phpBB/includes/db/db_tools.php b/phpBB/includes/db/db_tools.php
index c6dd23e6bd..f63ff18cbe 100644
--- a/phpBB/includes/db/db_tools.php
+++ b/phpBB/includes/db/db_tools.php
@@ -1819,6 +1819,22 @@ class phpbb_db_tools
case 'mssql':
case 'mssqlnative':
+ // remove default cosntraints first
+ // http://msdn.microsoft.com/en-us/library/aa175912%28v=sql.80%29.aspx
+ $statements[] = "DECLARE @drop_default_name VARCHAR(100), @cmd VARCHAR(1000)
+ SET @drop_default_name =
+ (SELECT so.name FROM sysobjects so
+ JOIN sysconstraints sc ON so.id = sc.constid
+ WHERE object_name(so.parent_obj) = '{$table_name}'
+ AND so.xtype = 'D'
+ AND sc.colid = (SELECT colid FROM syscolumns
+ WHERE id = object_id('{$table_name}')
+ AND name = '{$column_name}'))
+ IF @drop_default_name <> ''
+ BEGIN
+ SET @cmd = 'ALTER TABLE [{$table_name}] DROP CONSTRAINT [' + @drop_default_name + ']'
+ EXEC(@cmd)
+ END";
$statements[] = 'ALTER TABLE [' . $table_name . '] DROP COLUMN [' . $column_name . ']';
break;