<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: constraints code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Mon, 06 Oct 2008 14:48:05 GMT</pubDate>
    <description>DZone Snippets: constraints code</description>
    <item>
      <title>DB2 enable/disable constraints</title>
      <link>http://snippets.dzone.com/posts/show/3680</link>
      <description>&lt;code&gt;&lt;br /&gt;-- All FKs will be enabled/disabled, PKs not affected&lt;br /&gt;-- usage: &lt;br /&gt;--        enforce -&gt; db2 call SET_CONSTRAINTS('YES')&lt;br /&gt;--        not enforced -&gt; db2 call SET_CONSTRAINTS('NO')&lt;br /&gt;&lt;br /&gt;-- To check if referential integrity check is enforced:&lt;br /&gt;-- select * from syscat.tabconst where tabschema='DB2ADMIN' and TYPE='F'&lt;br /&gt;&lt;br /&gt;drop procedure SET_CONSTRAINTS!&lt;br /&gt;create procedure SET_CONSTRAINTS (ENFORCE VARCHAR(3))&lt;br /&gt;LANGUAGE SQL&lt;br /&gt;BEGIN&lt;br /&gt;declare v_tabname varchar(128);&lt;br /&gt;declare v_constname varchar(128);&lt;br /&gt;declare v_rows integer;&lt;br /&gt;declare v_alter_table_sql varchar(256);&lt;br /&gt;declare tmp_cursor cursor for SELECT tabname, constname FROM syscat.references WHERE TABSCHEMA = CURRENT SCHEMA ORDER BY CONSTNAME,TABNAME, REFTABNAME;&lt;br /&gt;select count(*) into v_rows from syscat.references WHERE TABSCHEMA = CURRENT SCHEMA;&lt;br /&gt;open tmp_cursor;&lt;br /&gt;while (v_rows &gt; 0) DO&lt;br /&gt;FETCH tmp_cursor INTO v_tabname, v_constname;&lt;br /&gt;SET v_alter_table_sql = 'alter table ' || current SCHEMA || '.' || v_tabname ||  ' alter foreign key ' || v_constname;&lt;br /&gt;IF (ENFORCE = 'NO') THEN &lt;br /&gt;    SET v_alter_table_sql = v_alter_table_sql || ' NOT ENFORCED';&lt;br /&gt;ELSE&lt;br /&gt;    SET v_alter_table_sql = v_alter_table_sql || ' ENFORCED';&lt;br /&gt;END IF;&lt;br /&gt;execute immediate v_alter_table_sql;&lt;br /&gt;SET v_rows = v_rows - 1;&lt;br /&gt;end while;&lt;br /&gt;close tmp_cursor;&lt;br /&gt;END!&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 16 Mar 2007 11:44:32 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3680</guid>
      <author>wjchay (Chay Weei Jye)</author>
    </item>
  </channel>
</rss>
