Skip to content

Instantly share code, notes, and snippets.

@ststeiger
Created August 24, 2015 12:53
Show Gist options
  • Select an option

  • Save ststeiger/3c4532443d9b596b5d0f to your computer and use it in GitHub Desktop.

Select an option

Save ststeiger/3c4532443d9b596b5d0f to your computer and use it in GitHub Desktop.
Create check constraints for DateFrom/DateTo
SELECT
--table_name
--,column_name,
--,' SELECT ''' + REPLACE(table_name, '''', '''''') + ''' AS tableName, * FROM ' + QUOTENAME(table_name) + ' WHERE ' + QUOTENAME(column_name) + ' > ' + REPLACE(QUOTENAME(column_name), 'Von', 'Bis') + '; ' AS cmd
--,
'
IF EXISTS (SELECT * FROM sys.check_constraints WHERE object_id = OBJECT_ID(N''dbo.CHK_' + table_name + '_' + column_name + '_LESSOREQUAL_' + REPLACE(column_name, 'Von', 'Bis') + ''') AND parent_object_id = OBJECT_ID(N''dbo.' + table_name + '''))
ALTER TABLE dbo.' + QUOTENAME(table_name) + ' DROP CONSTRAINT CHK_' + table_name + '_' + column_name + '_LESSOREQUAL_' + REPLACE(column_name, 'Von', 'Bis') + '
GO
ALTER TABLE dbo.' + QUOTENAME(table_name) + ' WITH NOCHECK
ADD CONSTRAINT CHK_' + table_name + '_' + column_name + '_LESSOREQUAL_' + REPLACE(column_name, 'Von', 'Bis') + ' CHECK ((' + column_name + ' <= ' + REPLACE(column_name, 'Von', 'Bis') + ' OR ' + REPLACE(column_name, 'DatumVon', 'Status') + ' <> (1) ) )
GO
ALTER TABLE dbo.' + QUOTENAME(table_name) + ' CHECK CONSTRAINT CHK_' + table_name + '_' + column_name + '_LESSOREQUAL_' + REPLACE(column_name, 'Von', 'Bis') + '
GO
' AS cmd
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME LIKE 'T[_]%'
AND
(
COLUMN_NAME LIKE '%DatumVon'
--OR COLUMN_NAME LIKE '%DatumBis'
)
--AND table_name = 'T_AP_Anlage'
-- ORDER BY TABLE_NAME
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment