|
-- Created by Ebean DDL |
|
-- To stop Ebean DDL generation, remove this comment (both lines) and start using Evolutions |
|
|
|
-- !Ups |
|
|
|
if not exists (select name from sys.types where name = 'ebean_bigint_tvp') create type ebean_bigint_tvp as table (c1 bigint); |
|
|
|
if not exists (select name from sys.types where name = 'ebean_float_tvp') create type ebean_float_tvp as table (c1 float); |
|
|
|
if not exists (select name from sys.types where name = 'ebean_bit_tvp') create type ebean_bit_tvp as table (c1 bit); |
|
|
|
if not exists (select name from sys.types where name = 'ebean_date_tvp') create type ebean_date_tvp as table (c1 date); |
|
|
|
if not exists (select name from sys.types where name = 'ebean_time_tvp') create type ebean_time_tvp as table (c1 time); |
|
|
|
if not exists (select name from sys.types where name = 'ebean_uniqueidentifier_tvp') create type ebean_uniqueidentifier_tvp as table (c1 uniqueidentifier); |
|
|
|
if not exists (select name from sys.types where name = 'ebean_nvarchar_tvp') create type ebean_nvarchar_tvp as table (c1 nvarchar(max)); |
|
|
|
-- !split-semicolon: never |
|
CREATE OR ALTER PROCEDURE usp_ebean_drop_indices @tableName nvarchar(255), @columnName nvarchar(255) |
|
AS |
|
-- play-ebean-start |
|
SET NOCOUNT ON |
|
declare @sql nvarchar(1000) |
|
declare @indexName nvarchar(255) |
|
BEGIN |
|
DECLARE index_cursor CURSOR FOR SELECT i.name from sys.indexes i |
|
join sys.index_columns ic on ic.object_id = i.object_id and ic.index_id = i.index_id |
|
join sys.columns c on c.object_id = ic.object_id and c.column_id = ic.column_id |
|
where i.object_id = OBJECT_ID(@tableName) AND c.name = @columnName; |
|
OPEN index_cursor |
|
FETCH NEXT FROM index_cursor INTO @indexName |
|
WHILE @@FETCH_STATUS = 0 |
|
BEGIN |
|
set @sql = 'drop index ' + @indexName + ' on [' + @tableName + ']'; |
|
EXECUTE(@sql); |
|
|
|
FETCH NEXT FROM index_cursor INTO @indexName |
|
END; |
|
CLOSE index_cursor; |
|
DEALLOCATE index_cursor; |
|
END |
|
-- play-ebean-end |
|
-- !split-semicolon: always |
|
; |
|
|
|
-- !split-semicolon: never |
|
CREATE OR ALTER PROCEDURE usp_ebean_drop_default_constraint @tableName nvarchar(255), @columnName nvarchar(255) |
|
AS |
|
-- play-ebean-start |
|
SET NOCOUNT ON |
|
declare @tmp nvarchar(1000) |
|
BEGIN |
|
select @tmp = t1.name from sys.default_constraints t1 |
|
join sys.columns t2 on t1.object_id = t2.default_object_id |
|
where t1.parent_object_id = OBJECT_ID(@tableName) and t2.name = @columnName; |
|
|
|
if @tmp is not null EXEC('alter table [' + @tableName +'] drop constraint ' + @tmp); |
|
END |
|
-- play-ebean-end |
|
-- !split-semicolon: always |
|
; |
|
|
|
-- !split-semicolon: never |
|
CREATE OR ALTER PROCEDURE usp_ebean_drop_constraints @tableName nvarchar(255), @columnName nvarchar(255) |
|
AS |
|
-- play-ebean-start |
|
SET NOCOUNT ON |
|
declare @sql nvarchar(1000) |
|
declare @constraintName nvarchar(255) |
|
BEGIN |
|
DECLARE name_cursor CURSOR FOR |
|
SELECT cc.name from sys.check_constraints cc |
|
join sys.columns c on c.object_id = cc.parent_object_id and c.column_id = cc.parent_column_id |
|
where parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName |
|
UNION SELECT fk.name from sys.foreign_keys fk |
|
join sys.foreign_key_columns fkc on fkc.constraint_object_id = fk.object_id |
|
and fkc.parent_object_id = fk.parent_object_id |
|
join sys.columns c on c.object_id = fkc.parent_object_id and c.column_id = fkc.parent_column_id |
|
where fkc.parent_object_id = OBJECT_ID(@tableName) AND c.name = @columnName; |
|
|
|
OPEN name_cursor |
|
FETCH NEXT FROM name_cursor INTO @constraintName |
|
WHILE @@FETCH_STATUS = 0 |
|
BEGIN |
|
set @sql = 'alter table [' + @tableName + '] drop constraint ' + @constraintName; |
|
EXECUTE(@sql); |
|
|
|
FETCH NEXT FROM name_cursor INTO @constraintName |
|
END; |
|
CLOSE name_cursor; |
|
DEALLOCATE name_cursor; |
|
END |
|
-- play-ebean-end |
|
-- !split-semicolon: always |
|
; |
|
|
|
-- !split-semicolon: never |
|
CREATE OR ALTER PROCEDURE usp_ebean_drop_column @tableName nvarchar(255), @columnName nvarchar(255) |
|
AS |
|
-- play-ebean-start |
|
SET NOCOUNT ON |
|
declare @sql nvarchar(1000) |
|
BEGIN |
|
EXEC usp_ebean_drop_indices @tableName, @columnName; |
|
EXEC usp_ebean_drop_default_constraint @tableName, @columnName; |
|
EXEC usp_ebean_drop_constraints @tableName, @columnName; |
|
|
|
set @sql = 'alter table [' + @tableName + '] drop column [' + @columnName + ']'; |
|
EXECUTE(@sql); |
|
END |
|
-- play-ebean-end |
|
-- !split-semicolon: always |
|
; |
|
|
|
create table author ( |
|
id bigint not null, |
|
name nvarchar(255), |
|
constraint pk_author primary key (id) |
|
); |
|
|
|
create sequence author_seq as bigint start with 1 increment by 50; |
|
|
|
|
|
-- !Downs |
|
|
|
-- drop all |
|
if exists (select name from sys.types where name = 'ebean_bigint_tvp') drop type ebean_bigint_tvp; |
|
if exists (select name from sys.types where name = 'ebean_float_tvp') drop type ebean_float_tvp; |
|
if exists (select name from sys.types where name = 'ebean_bit_tvp') drop type ebean_bit_tvp; |
|
if exists (select name from sys.types where name = 'ebean_date_tvp') drop type ebean_date_tvp; |
|
if exists (select name from sys.types where name = 'ebean_time_tvp') drop type ebean_time_tvp; |
|
if exists (select name from sys.types where name = 'ebean_uniqueidentifier_tvp') drop type ebean_uniqueidentifier_tvp; |
|
if exists (select name from sys.types where name = 'ebean_nvarchar_tvp') drop type ebean_nvarchar_tvp; |
|
IF OBJECT_ID('author', 'U') IS NOT NULL drop table author; |
|
IF OBJECT_ID('author_seq', 'SO') IS NOT NULL drop sequence author_seq; |
|
|