diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-01-15 22:24:58 -0600 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-01-15 22:24:58 -0600 |
commit | e9a3f090742d0acaa42bc0e381e8b1860a296eec (patch) | |
tree | 727b70bad1c76e33c3f309dea7a8c6386bdccd77 | |
parent | 227f7f46dfdba990242c96f6d6e27f0d12ab4784 (diff) | |
parent | a9cf558af7fc08539e15ceca1e889e087c815c8d (diff) | |
download | forums-e9a3f090742d0acaa42bc0e381e8b1860a296eec.tar forums-e9a3f090742d0acaa42bc0e381e8b1860a296eec.tar.gz forums-e9a3f090742d0acaa42bc0e381e8b1860a296eec.tar.bz2 forums-e9a3f090742d0acaa42bc0e381e8b1860a296eec.tar.xz forums-e9a3f090742d0acaa42bc0e381e8b1860a296eec.zip |
Merge remote-tracking branch 'remotes/Sajaki/ticket/10854' into develop-olympus
# By Sajaki
# Via Sajaki
* remotes/Sajaki/ticket/10854:
[ticket/10854] sql server drop default constraint when dropping column
-rw-r--r-- | phpBB/includes/db/db_tools.php | 16 |
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; |