home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 December / PCWorld_1998-12_cd.iso / software / sybase / ASA / asa60.exe / data1.cab / scripts_files / sybprc50.sql < prev    next >
Text File  |  1998-07-27  |  78KB  |  2,652 lines

  1. --  ************************************************************************
  2. --  *       Copyright (C) 1998 by Sybase Inc.  All rights                   *
  3. --  *       reserved. No part of this software may be reproduced            *
  4. --  *       in any form or by any means - graphic, electronic or            *
  5. --  *       mechanical, including photocopying, recording, taping           *
  6. --  *       or information storage and retrieval systems - except           *
  7. --  *       with the written permission of Sybase Inc.                      *
  8. --  *************************************************************************
  9. --
  10. --  WARNING: This is a program generated file. Do not edit.
  11. --
  12.  
  13. CREATE procedure dbo.sp_tsql_feature_not_supported() 
  14.     begin 
  15.     declare    feature_not_supported exception for sqlstate '0AW02'; 
  16.     signal feature_not_supported; 
  17.     end 
  18. go
  19. CREATE procedure dbo.sp_checkperms( in required_auth char(10) ) 
  20.     begin 
  21.     declare        has_perm char(1); 
  22.     declare    permission_denied exception for sqlstate '42501'; 
  23.     
  24.     select (select if required_auth = 'DBA' then dbaauth 
  25.                       else resourceauth endif 
  26.                     from SYS.SYSUSERPERMS 
  27.                     where user_name=user) into has_perm; 
  28.     if has_perm <> 'Y' then 
  29.         signal permission_denied 
  30.     end if 
  31.     end 
  32. go
  33. CREATE procedure dbo.sp_addalias( 
  34.            in @login_name    char(128), 
  35.            in @name_in_db    char(128)  
  36.            ) 
  37.     begin 
  38.     call sp_tsql_feature_not_supported() 
  39.     end 
  40. go
  41. CREATE procedure dbo.sp_addauditrecord( 
  42.            in @text        char(128)   default 'message text', 
  43.            in @db_name    char(128)   default 'db_name', 
  44.            in @obj_name    char(128)   default 'object_name', 
  45.            in @owner_name    char(128)   default 'owner_name', 
  46.            in @dbid        int        default NULL, 
  47.            in @objid    int        default NULL  
  48.            ) 
  49.     begin 
  50.     call sp_tsql_feature_not_supported() 
  51.     end 
  52. go
  53. CREATE procedure dbo.sp_addgroup( 
  54.            in @grpname    char(128) 
  55.            ) 
  56.     begin 
  57.     call dbo.sp_checkperms( 'DBA' ); 
  58.     execute immediate with quotes
  59.         'grant connect, group to "' || @grpname || '"'
  60.     end 
  61. go
  62. CREATE procedure dbo.sp_addlanguage( 
  63.            in @language    char(30), 
  64.            in @alias    char(30), 
  65.            in @months    varchar(251), 
  66.            in @shortmons    varchar(119), 
  67.            in @days     varchar(216), 
  68.            in @datefmt    char(3), 
  69.            in @datefirst    smallint  
  70.            ) 
  71.     begin 
  72.     call sp_tsql_feature_not_supported() 
  73.     end 
  74. go
  75. CREATE procedure dbo.sp_addlogin( 
  76.            in @login_name    char(128), 
  77.            in @passwd    char(128), 
  78.            in @defaultdb    char(128)   default NULL, 
  79.            in @deflanguage    char(30)    default NULL, 
  80.            in @fullname    char(128)   default NULL 
  81.            ) 
  82.     begin 
  83.     call dbo.sp_checkperms( 'DBA' ); 
  84.     execute immediate with quotes
  85.         'grant connect to "' || @login_name || 
  86.             '" identified by "' || @passwd || '"'
  87.     end 
  88. go
  89. CREATE procedure dbo.sp_addmessage( 
  90.            in @message_num    int, 
  91.            in @message_text varchar(255), 
  92.            in @language    int        default NULL 
  93.            ) 
  94.     begin 
  95.     call dbo.sp_checkperms( 'RESOURCE' ); 
  96.     execute immediate with quotes
  97.         'create message ' || @message_num 
  98.          || ' as ''' || @message_text || ''' user "' || user || '"'
  99.     end 
  100. go
  101. CREATE procedure dbo.sp_addremotelogin( 
  102.            in @remoteserver char(30), 
  103.            in @login_name    char(128), 
  104.            in @remotename    char(128)   default NULL 
  105.            ) 
  106.     begin 
  107.     call sp_tsql_feature_not_supported() 
  108.     end 
  109. go
  110. CREATE procedure dbo.sp_addsegment( 
  111.            in @segname    char(128), 
  112.            in @dbname    char(128), 
  113.            in @device_name    char(128) 
  114.            ) 
  115.     begin 
  116.     call sp_tsql_feature_not_supported() 
  117.     end 
  118. go
  119. CREATE procedure dbo.sp_addserver( 
  120.            in @server    char(128), 
  121.            in @local_null    char(5)        default NULL, 
  122.            in @network_name char(128)   default NULL 
  123.            ) 
  124.     begin 
  125.     call sp_tsql_feature_not_supported() 
  126.     end 
  127. go
  128. CREATE procedure dbo.sp_addthreshold( 
  129.            in @database    char(128), 
  130.            in @segment    char(128), 
  131.            in @free_pages    int, 
  132.            in @procedure    char(128) 
  133.            ) 
  134.     begin 
  135.     call sp_tsql_feature_not_supported() 
  136.     end 
  137. go
  138. CREATE procedure dbo.sp_addtype( 
  139.            in @typename    char(30), 
  140.            in @phystype    char(30), 
  141.            in @ident_null    char(20)    default 'not specified' 
  142.            ) 
  143.     begin 
  144.     declare dflt char(30); 
  145.     declare nullable char(8); 
  146.      
  147.     call dbo.sp_checkperms( 'RESOURCE' ); 
  148.     set dflt = ''; 
  149.     set nullable = ''; 
  150.     if @ident_null is null then 
  151.       set @ident_null = 'null' 
  152.     end if; 
  153.     if @ident_null <> 'not specified' then 
  154.       if lcase(@ident_null) = 'identity' then 
  155.         set dflt = 'default autoincrement'; 
  156.         set nullable = 'not null'; 
  157.       else 
  158.         if lcase(@ident_null) = 'nonull' then 
  159.           set nullable = 'not null'; 
  160.         else 
  161.           set nullable = @ident_null; 
  162.         end if; 
  163.       end if; 
  164.     end if; 
  165.     execute immediate with quotes
  166.         'create domain ' || @typename || ' ' 
  167.          || @phystype || ' ' || nullable || ' ' || dflt; 
  168.     end 
  169. go
  170. CREATE procedure dbo.sp_adddumpdevice( 
  171.            in @tape_disk    char(4), 
  172.            in @device_name    char(128), 
  173.            in @phys_name    char(128), 
  174.            in @size    int        default NULL 
  175.            ) 
  176.     begin 
  177.     call sp_tsql_feature_not_supported() 
  178.     end 
  179. go
  180. CREATE procedure dbo.sp_adduser( 
  181.            in @login_name    char(128), 
  182.            in @name_in_db    char(128)   default NULL, 
  183.            in @grpname    char(128)   default NULL 
  184.            ) 
  185.     begin 
  186.     call dbo.sp_checkperms( 'DBA' ); 
  187.     if not exists (select * from SYS.SYSUSERPERMS
  188.        where user_name = @login_name) then 
  189.         execute immediate with quotes
  190.         'grant connect to "' || @login_name || '"';
  191.     end if;
  192.     if @grpname is not null then 
  193.       execute immediate with quotes
  194.           'grant membership in group "' || @grpname 
  195.               || '" to "' || @login_name || '"';
  196.     end if 
  197.     end 
  198. go
  199. CREATE procedure dbo.sp_auditdatabase( 
  200.            in @dbname    char(128)   default NULL, 
  201.            in @audittype    char(4)        default NULL, 
  202.            in @event_types    char(10)    default NULL 
  203.            ) 
  204.     begin 
  205.     call sp_tsql_feature_not_supported() 
  206.     end 
  207. go
  208. CREATE procedure dbo.sp_auditlogin( 
  209.            in @login_name    char(128)   default NULL, 
  210.            in @table_view    char(5)        default NULL, 
  211.            in @audittype    char(4)        default NULL, 
  212.            in @cmdtext    char(7)        default NULL, 
  213.            in @on_off    char(3)        default NULL  
  214.            ) 
  215.     begin 
  216.     call sp_tsql_feature_not_supported() 
  217.     end 
  218. go
  219. CREATE procedure dbo.sp_auditobject( 
  220.            in @objname    char(128), 
  221.            in @dbname    char(128), 
  222.            in @audittype    char(4)        default NULL, 
  223.            in @event_types    char(10)    default NULL 
  224.            ) 
  225.     begin 
  226.     call sp_tsql_feature_not_supported() 
  227.     end 
  228. go
  229. CREATE procedure dbo.sp_auditoption( 
  230.            in @auditopt    char(30), 
  231.            in @optval    char(128)   default NULL 
  232.            ) 
  233.     begin 
  234.     call sp_tsql_feature_not_supported() 
  235.     end 
  236. go
  237. CREATE procedure dbo.sp_auditsproc( 
  238.            in @sp_name    char(128)   default NULL, 
  239.            in @dbname    char(128)   default NULL, 
  240.            in @audittype    char(4)        default NULL 
  241.            ) 
  242.     begin 
  243.     call sp_tsql_feature_not_supported() 
  244.     end 
  245. go
  246. CREATE procedure dbo.sp_bindefault( 
  247.            in @defaultname    char(128), 
  248.            in @objectname    char(128), 
  249.            in @futureonly    char(10)    default NULL 
  250.            ) 
  251.     begin 
  252.     call sp_tsql_feature_not_supported() 
  253.     end 
  254. go
  255. CREATE procedure dbo.sp_bindmsg( 
  256.            in @constraint_name char(128), 
  257.            in @message_num    int 
  258.            ) 
  259.     begin 
  260.     call sp_tsql_feature_not_supported() 
  261.     end 
  262. go
  263. CREATE procedure dbo.sp_bindrule( 
  264.            in @rulename    char(128), 
  265.            in @objectname    char(128), 
  266.            in @futureonly    char(10)    default NULL 
  267.            ) 
  268.     begin 
  269.     call sp_tsql_feature_not_supported() 
  270.     end 
  271. go
  272. CREATE procedure dbo.sp_changedbowner( 
  273.            in @login_name    char(128), 
  274.            in @true_kw    char(4)        default NULL 
  275.            ) 
  276.     begin 
  277.     call sp_tsql_feature_not_supported() 
  278.     end 
  279. go
  280. CREATE procedure dbo.sp_changegroup( 
  281.            in @grpname    char(128), 
  282.            in @name_in_db    char(128) 
  283.            ) 
  284.     begin 
  285.     call dbo.sp_checkperms( 'DBA' ); 
  286.     execute immediate with quotes
  287.         'grant membership in group "' || @grpname || 
  288.             '" to "' || @name_in_db || '"'
  289.     end 
  290. go
  291. CREATE procedure dbo.sp_checknames() 
  292.     begin 
  293.     call sp_tsql_feature_not_supported() 
  294.     end 
  295. go
  296. CREATE procedure dbo.sp_checkreswords( 
  297.            in @user_name    char(128)   default NULL 
  298.            ) 
  299.     begin 
  300.     call sp_tsql_feature_not_supported() 
  301.     end 
  302. go
  303. CREATE procedure dbo.sp_clearstats( 
  304.            in @user_name    char(128)   default NULL 
  305.            ) 
  306.     begin 
  307.     call sp_tsql_feature_not_supported() 
  308.     end 
  309. go
  310. CREATE procedure dbo.sp_commonkey( 
  311.            in @tabaname    char(128), 
  312.            in @tabbname    char(128), 
  313.            in @col1a    char(128), 
  314.            in @col1b    char(128), 
  315.            in @col2a    char(128)   default NULL, 
  316.            in @col2b    char(128)   default NULL, 
  317.            in @col3a    char(128)   default NULL, 
  318.            in @col3b    char(128)   default NULL, 
  319.            in @col4a    char(128)   default NULL, 
  320.            in @col4b    char(128)   default NULL, 
  321.            in @col5a    char(128)   default NULL, 
  322.            in @col5b    char(128)   default NULL, 
  323.            in @col6a    char(128)   default NULL, 
  324.            in @col6b    char(128)   default NULL, 
  325.            in @col7a    char(128)   default NULL, 
  326.            in @col7b    char(128)   default NULL, 
  327.            in @col8a    char(128)   default NULL, 
  328.            in @col8b    char(128)   default NULL 
  329.            ) 
  330.     begin 
  331.     call sp_tsql_feature_not_supported() 
  332.     end 
  333. go
  334. CREATE procedure dbo.sp_configure( 
  335.            in @config_name    char(128)   default NULL, 
  336.            in @config_value char(128)   default NULL 
  337.            ) 
  338.     begin 
  339.     call sp_tsql_feature_not_supported() 
  340.     end 
  341. go
  342. CREATE procedure dbo.sp_cursorinfo( 
  343.            in @cursor_level int        default NULL, 
  344.            in @cursor_name    char(128)   default NULL 
  345.            ) 
  346.     begin 
  347.     call sp_tsql_feature_not_supported() 
  348.     end 
  349. go
  350. CREATE procedure dbo.sp_dboption( 
  351.            in @dbname    char(128)   default NULL, 
  352.            in @optname    char(128)   default NULL, 
  353.            in @true_false    char(5)        default NULL 
  354.            ) 
  355.     begin 
  356.     declare setting char(3); 
  357.      
  358.     if @dbname is null or @optname is null or @true_false is null then 
  359.       call sp_tsql_feature_not_supported() 
  360.     else 
  361.       if lcase(@true_false) = 'true' then 
  362.         set setting = 'on' 
  363.       else 
  364.         set setting = 'off' 
  365.       end if; 
  366.       if 'allow nulls by default' like (lcase(@optname) || '%') then 
  367.         execute immediate with quotes
  368.             'set option ' || user || '.Allow_nulls_by_default = ''' 
  369.                 || setting || ''''
  370.       else 
  371.         call sp_tsql_feature_not_supported() 
  372.       end if; 
  373.     end if 
  374.     end 
  375. go
  376. CREATE procedure dbo.sp_dbremap( 
  377.            in @database_name char(128) 
  378.            ) 
  379.     begin 
  380.     call sp_tsql_feature_not_supported() 
  381.     end 
  382. go
  383. CREATE procedure dbo.sp_depends( 
  384.            in @objname    char(128) 
  385.            ) 
  386.     begin 
  387.     call sp_tsql_feature_not_supported() 
  388.     end 
  389. go
  390. CREATE procedure dbo.sp_diskdefault( 
  391.            in @logical_name    char(128), 
  392.            in @dflt_on_off    char(10)  
  393.            ) 
  394.     begin 
  395.     call sp_tsql_feature_not_supported() 
  396.     end 
  397. go
  398. CREATE procedure dbo.sp_displaylogin( 
  399.            in @login_name    char(128)   default NULL 
  400.            ) 
  401.     begin 
  402.     call sp_tsql_feature_not_supported() 
  403.     end 
  404. go
  405. CREATE procedure dbo.sp_dropalias( 
  406.            in @login_name    char(128) 
  407.            ) 
  408.     begin 
  409.     call sp_tsql_feature_not_supported() 
  410.     end 
  411. go
  412. CREATE procedure dbo.sp_dropdevice( 
  413.            in @device_name    char(128) 
  414.            ) 
  415.     begin 
  416.     call sp_tsql_feature_not_supported() 
  417.     end 
  418. go
  419. CREATE procedure dbo.sp_dropgroup( 
  420.            in @grpname    char(128) 
  421.            ) 
  422.     begin 
  423.     call dbo.sp_checkperms( 'DBA' ); 
  424.     execute immediate with quotes
  425.         'revoke group from "' || @grpname || '"'
  426.     end 
  427. go
  428. CREATE procedure dbo.sp_dropkey( 
  429.            in @keytype    char(7), 
  430.            in @tabaname    char(128), 
  431.            in @tabbname    char(128)   default NULL 
  432.            ) 
  433.     begin 
  434.     call sp_tsql_feature_not_supported() 
  435.     end 
  436. go
  437. CREATE procedure dbo.sp_droplanguage( 
  438.            in @language    char(30), 
  439.            in @dropmessages char(12)    default NULL 
  440.            ) 
  441.     begin 
  442.     call sp_tsql_feature_not_supported() 
  443.     end 
  444. go
  445. CREATE procedure dbo.sp_droplogin( 
  446.            in @login_name    char(128) 
  447.            ) 
  448.     begin 
  449.     call dbo.sp_checkperms( 'DBA' ); 
  450.     execute immediate with quotes
  451.         'revoke connect from "' || @login_name || '"'
  452.     end 
  453. go
  454. CREATE procedure dbo.sp_dropmessage( 
  455.            in @message_number   int, 
  456.            in @language    char(30)    default NULL 
  457.            ) 
  458.     begin 
  459.     call dbo.sp_checkperms( 'RESOURCE' ); 
  460.     execute immediate with quotes
  461.         'drop message ' || @message_number 
  462.     end 
  463. go
  464. CREATE procedure dbo.sp_dropremotelogin( 
  465.            in @remoteserver char(128), 
  466.            in @login_name    char(128)   default NULL, 
  467.            in @remotename    char(128)   default NULL  
  468.            ) 
  469.     begin 
  470.     call sp_tsql_feature_not_supported() 
  471.     end 
  472. go
  473. CREATE procedure dbo.sp_dropsegment( 
  474.            in @segname    char(128), 
  475.            in @dbname    char(128), 
  476.            in @device_name    char(128)   default NULL 
  477.            ) 
  478.     begin 
  479.     call sp_tsql_feature_not_supported() 
  480.     end 
  481. go
  482. CREATE procedure dbo.sp_dropserver( 
  483.            in @server    char(128), 
  484.            in @droplogins    char(10)    default NULL  
  485.            ) 
  486.     begin 
  487.     call sp_tsql_feature_not_supported() 
  488.     end 
  489. go
  490. CREATE procedure dbo.sp_dropthreshold( 
  491.            in @database    char(128), 
  492.            in @segment_name char(128), 
  493.            in @free_pages    int 
  494.            ) 
  495.     begin 
  496.     call sp_tsql_feature_not_supported() 
  497.     end 
  498. go
  499. CREATE procedure dbo.sp_droptype( 
  500.            in @typename    char(30) 
  501.            ) 
  502.     begin 
  503.     call dbo.sp_checkperms( 'RESOURCE' ); 
  504.     execute immediate with quotes
  505.         'drop domain "' || @typename || '"' 
  506.     end 
  507. go
  508. CREATE procedure dbo.sp_dropuser( 
  509.            in @name_in_db    char(128) 
  510.            ) 
  511.     begin 
  512.     call dbo.sp_checkperms( 'DBA' ); 
  513.     execute immediate with quotes
  514.         'revoke connect from "' || @name_in_db || '"'
  515.     end 
  516. go
  517. CREATE procedure dbo.sp_estspace( 
  518.            in @table_name    char(128), 
  519.            in @no_of_rows    int, 
  520.            in @fill_factor    int        default NULL, 
  521.            in @cols_to_max    int        default NULL, 
  522.            in @textbin_len    int        default NULL, 
  523.            in @iosec    int        default NULL 
  524.            ) 
  525.     begin 
  526.     call sp_tsql_feature_not_supported() 
  527.     end 
  528. go
  529. CREATE procedure dbo.sp_extendsegment( 
  530.            in @segname    char(128), 
  531.            in @dbname    char(128), 
  532.            in @device_name    char(128)  
  533.            ) 
  534.     begin 
  535.     call sp_tsql_feature_not_supported() 
  536.     end 
  537. go
  538. CREATE procedure dbo.sp_foreignkey( 
  539.            in @tabname    char(128), 
  540.            in @pktabname    char(128), 
  541.            in @col1        char(128), 
  542.            in @col2        char(128)   default NULL, 
  543.            in @col3        char(128)   default NULL, 
  544.            in @col4        char(128)   default NULL, 
  545.            in @col5        char(128)   default NULL, 
  546.            in @col6        char(128)   default NULL, 
  547.            in @col7        char(128)   default NULL, 
  548.            in @col8        char(128)   default NULL 
  549.            ) 
  550.     begin 
  551.     call sp_tsql_feature_not_supported() 
  552.     end 
  553. go
  554. CREATE procedure dbo.sp_getmessage( 
  555.            in @message_num    int, 
  556.            out @msg_var    varchar(255), 
  557.            in @language    char(30)    default NULL 
  558.            ) 
  559.     on exception resume 
  560.     begin 
  561.     set @msg_var = (select description from SYS.SYSUSERMESSAGES 
  562.                     where error = @message_num); 
  563.     end 
  564. go
  565. CREATE procedure dbo.sp_help( 
  566.            in @objname    char(128)   default NULL 
  567.            ) 
  568.     begin 
  569.     call sp_tsql_feature_not_supported() 
  570.     end 
  571. go
  572. CREATE procedure dbo.sp_helpconstraint( 
  573.            in @tabname    char(128), 
  574.            in @detail    char(6)        default NULL 
  575.            ) 
  576.     begin 
  577.     call sp_tsql_feature_not_supported() 
  578.     end 
  579. go
  580. CREATE procedure dbo.sp_helpdb( 
  581.            in @dbname    char(128)   default NULL 
  582.            ) 
  583.     begin 
  584.     call sp_tsql_feature_not_supported() 
  585.     end 
  586. go
  587. CREATE procedure dbo.sp_helpdevice( 
  588.            in @device_name    char(128)   default NULL 
  589.            ) 
  590.     begin 
  591.     call sp_tsql_feature_not_supported() 
  592.     end 
  593. go
  594. CREATE procedure dbo.sp_helpgroup( 
  595.            in @grpname    char(128)   default NULL 
  596.            ) 
  597.     begin 
  598.     call sp_tsql_feature_not_supported() 
  599.     end 
  600. go
  601. CREATE procedure dbo.sp_helpindex( 
  602.            in @tabname    char(128) 
  603.            ) 
  604.     begin 
  605.     call sp_tsql_feature_not_supported() 
  606.     end 
  607. go
  608. CREATE procedure dbo.sp_helpjoins( 
  609.            in @lefttab    char(128), 
  610.            in @righttab     char(128) 
  611.            ) 
  612.     begin 
  613.     call sp_tsql_feature_not_supported() 
  614.     end 
  615. go
  616. CREATE procedure dbo.sp_helpkey( 
  617.            in @objname     char(128)   default NULL 
  618.            ) 
  619.     begin 
  620.     call sp_tsql_feature_not_supported() 
  621.     end 
  622. go
  623. CREATE procedure dbo.sp_helplanguage( 
  624.            in @language     char(128)   default NULL 
  625.            ) 
  626.     begin 
  627.     call sp_tsql_feature_not_supported() 
  628.     end 
  629. go
  630. CREATE procedure dbo.sp_helplog() 
  631.     begin 
  632.     call sp_tsql_feature_not_supported() 
  633.     end 
  634. go
  635. CREATE procedure dbo.sp_helpremotelogin( 
  636.            in @remoteserver char(128)   default NULL, 
  637.            in @remotename     char(128)   default NULL 
  638.            ) 
  639.     begin 
  640.     call sp_tsql_feature_not_supported() 
  641.     end 
  642. go
  643. CREATE procedure dbo.sp_helpprotect( 
  644.            in @name        char(128)   default NULL, 
  645.            in @name_in_db    char(128)   default NULL, 
  646.            in @grant_kw    char(5)        default NULL 
  647.            ) 
  648.     begin 
  649.     call sp_tsql_feature_not_supported() 
  650.     end 
  651. go
  652. CREATE procedure dbo.sp_helpsegment( 
  653.            in @segname     char(128)   default NULL 
  654.            ) 
  655.     begin 
  656.     call sp_tsql_feature_not_supported() 
  657.     end 
  658. go
  659. CREATE procedure dbo.sp_helpserver( 
  660.            in @server     char(128)   default NULL 
  661.            ) 
  662.     begin 
  663.     call sp_tsql_feature_not_supported() 
  664.     end 
  665. go
  666. CREATE procedure dbo.sp_helpsort() 
  667.     begin 
  668.     call sp_tsql_feature_not_supported() 
  669.     end 
  670. go
  671. CREATE procedure dbo.sp_helptext( 
  672.            in @objname     char(128)   default NULL 
  673.            ) 
  674.         result ( "text" char(80) ) 
  675.     begin 
  676.     declare txt         long varchar; 
  677.     declare currline    char(80); 
  678.     declare i           smallint; 
  679.     declare len         integer; 
  680.     declare posn        integer; 
  681.     declare objid        integer; 
  682.     declare local temporary table  
  683.         tmp__sp_helptext ( 
  684.         ln          smallint not null primary key, 
  685.         "text"      char(80) null 
  686.         ) in SYSTEM on commit preserve rows; 
  687.     set objid = object_id( @objname ); 
  688.     if objid is null then 
  689.         return 
  690.     end if; 
  691.     if objid >= 100000 and objid < 200000 then 
  692.         select view_def into txt 
  693.         from SYS.SYSTABLE 
  694.         where table_id = objid - 100000 
  695.     else 
  696.         if objid >= 200000 and objid < 300000 then 
  697.         select proc_defn into txt  
  698.         from SYS.SYSPROCEDURE  
  699.         where proc_id = objid - 200000 
  700.         else 
  701.         select trigger_defn into txt  
  702.         from SYS.SYSTRIGGER  
  703.         where trigger_id = objid - 300000 
  704.         end if 
  705.     end if; 
  706.     set i = 1; 
  707.     set len = length(txt); 
  708.     while( len > 0 ) loop 
  709.         set posn = locate(txt,'\n'); 
  710.         if( posn > 80 or posn = 0 ) then 
  711.         set posn = 80; 
  712.         set currline = substr(txt,1,posn) 
  713.         else 
  714.         set currline = substr(txt,1,posn-1) 
  715.         end if; 
  716.         insert into tmp__sp_helptext values(i,currline); 
  717.         set txt = substr(txt,posn+1); 
  718.         set len = len - posn; 
  719.         set i = i + 1 
  720.     end loop; 
  721.     select "text" from tmp__sp_helptext order by ln; 
  722.     end 
  723. go
  724. CREATE procedure dbo.sp_helpthreshold( 
  725.            in @segment_name char(128)   default NULL 
  726.            ) 
  727.     begin 
  728.     call sp_tsql_feature_not_supported() 
  729.     end 
  730. go
  731. CREATE procedure dbo.sp_helpuser( 
  732.            in @name_in_db     char(128)   default NULL 
  733.            ) 
  734.     begin 
  735.     call sp_tsql_feature_not_supported() 
  736.     end 
  737. go
  738. CREATE procedure dbo.sp_indsuspect( 
  739.            in @table_name     char(128)   default NULL 
  740.            ) 
  741.     begin 
  742.     call sp_tsql_feature_not_supported() 
  743.     end 
  744. go
  745. CREATE procedure dbo.sp_lock( 
  746.            in @spid1    int        default NULL, 
  747.            in @spid2    int        default NULL 
  748.            ) 
  749.     begin 
  750.     call sp_tsql_feature_not_supported() 
  751.     end 
  752. go
  753. CREATE procedure dbo.sp_locklogin( 
  754.            in @login_name    char(128)   default NULL, 
  755.            in @lock_unlock     char(6)     default NULL 
  756.            ) 
  757.     begin 
  758.     call sp_tsql_feature_not_supported() 
  759.     end 
  760. go
  761. CREATE procedure dbo.sp_logdevice( 
  762.            in @dbname    char(128), 
  763.            in @device_name    char(128) 
  764.            ) 
  765.     begin 
  766.     call sp_tsql_feature_not_supported() 
  767.     end 
  768. go
  769. CREATE procedure dbo.sp_modifylogin( 
  770.            in @login_name    char(128), 
  771.            in @optname    char(30), 
  772.            in @value     char(128) 
  773.            ) 
  774.     begin 
  775.     call sp_tsql_feature_not_supported() 
  776.     end 
  777. go
  778. CREATE procedure dbo.sp_modifythreshold( 
  779.            in @database    char(128), 
  780.            in @segment    char(128), 
  781.            in @free_pages    int, 
  782.            in @new_procedure char(128)  default NULL, 
  783.            in @new_free_pages int        default NULL, 
  784.            in @new_segment    char(128)   default NULL 
  785.            ) 
  786.     begin 
  787.     call sp_tsql_feature_not_supported() 
  788.     end 
  789. go
  790. CREATE procedure dbo.sp_monitor() 
  791.     begin 
  792.     call sp_tsql_feature_not_supported() 
  793.     end 
  794. go
  795. CREATE procedure dbo.sp_password( 
  796.            in @caller_pswd    char(128), 
  797.            in @new_pswd    char(128), 
  798.            in @login_name    char(128)   default NULL 
  799.            ) 
  800.     begin 
  801.     if @login_name is not null then 
  802.       call dbo.sp_checkperms( 'DBA' ) 
  803.     else 
  804.       set @login_name = user 
  805.     end if; 
  806.     execute immediate with quotes
  807.         'grant connect to "' || @login_name || 
  808.         '" identified by "' || @new_pswd || '"'; 
  809.     end 
  810. go
  811. CREATE procedure dbo.sp_placeobject( 
  812.            in @segname    char(128), 
  813.            in @objname     char(128) 
  814.            ) 
  815.     begin 
  816.     call sp_tsql_feature_not_supported() 
  817.     end 
  818. go
  819. CREATE procedure dbo.sp_primarykey( 
  820.            in @tabname    char(128), 
  821.            in @col1        char(128), 
  822.            in @col2        char(128)   default NULL, 
  823.            in @col3        char(128)   default NULL, 
  824.            in @col4        char(128)   default NULL, 
  825.            in @col5        char(128)   default NULL, 
  826.            in @col6        char(128)   default NULL, 
  827.            in @col7        char(128)   default NULL, 
  828.            in @col8     char(128)   default NULL 
  829.            ) 
  830.     begin 
  831.     call sp_tsql_feature_not_supported() 
  832.     end 
  833. go
  834. CREATE procedure dbo.sp_procxmode( 
  835.            in @proc_name    char(128)   default NULL, 
  836.            in @trans_mode    char(9)     default NULL 
  837.            ) 
  838.     begin 
  839.     call sp_tsql_feature_not_supported() 
  840.     end 
  841. go
  842. CREATE procedure dbo.sp_recompile( 
  843.            in @tabname     char(128) 
  844.            ) 
  845.     begin 
  846.     call sp_tsql_feature_not_supported() 
  847.     end 
  848. go
  849. CREATE procedure dbo.sp_remap( 
  850.            in @object_name    char(128) 
  851.            ) 
  852.     begin 
  853.     call sp_tsql_feature_not_supported() 
  854.     end 
  855. go
  856. CREATE procedure dbo.sp_remoteoption( 
  857.            in @remoteserver char(128)   default NULL, 
  858.            in @login_name    char(128)   default NULL, 
  859.            in @remote_name    char(128)   default NULL, 
  860.            in @opt_name    char(128)   default NULL, 
  861.            in @true_false     char(5)     default NULL 
  862.            ) 
  863.     begin 
  864.     call sp_tsql_feature_not_supported() 
  865.     end 
  866. go
  867. CREATE procedure dbo.sp_rename( 
  868.            in @objname    char(128), 
  869.            in @newname     char(128) 
  870.            ) 
  871.     begin 
  872.     call sp_tsql_feature_not_supported() 
  873.     end 
  874. go
  875. CREATE procedure dbo.sp_renamedb( 
  876.            in @dbname    char(128), 
  877.            in @newname     char(128) 
  878.            ) 
  879.     begin 
  880.     call sp_tsql_feature_not_supported() 
  881.     end 
  882. go
  883. CREATE procedure dbo.sp_reportstats( 
  884.            in @user_name     char(128)   default NULL 
  885.            ) 
  886.     begin 
  887.     call sp_tsql_feature_not_supported() 
  888.     end 
  889. go
  890. CREATE procedure dbo.sp_role( 
  891.            in @grant_revoke char(6), 
  892.            in @role_type    char(9), 
  893.            in @login_name     char(128) 
  894.            ) 
  895.     begin 
  896.     call sp_tsql_feature_not_supported() 
  897.     end 
  898. go
  899. CREATE procedure dbo.sp_serveroption( 
  900.            in @server    char(128)   default NULL, 
  901.            in @optname    char(128)   default NULL, 
  902.            in @true_false    char(5)        default NULL 
  903.            ) 
  904.     begin 
  905.     call sp_tsql_feature_not_supported() 
  906.     end 
  907. go
  908. CREATE procedure dbo.sp_setlangalias( 
  909.            in @language    char(30), 
  910.            in @alias     char(30) 
  911.            ) 
  912.     begin 
  913.     call sp_tsql_feature_not_supported() 
  914.     end 
  915. go
  916. CREATE procedure dbo.sp_spaceused( 
  917.            in @table_name     char(128)   default NULL 
  918.            ) 
  919.     begin 
  920.     call sp_tsql_feature_not_supported() 
  921.     end 
  922. go
  923. CREATE procedure dbo.sp_syntax( 
  924.            in @cmd_or_frag    char(128)   default NULL, 
  925.            in @module_name    char(128)   default NULL, 
  926.            in @language     char(30)    default NULL 
  927.            ) 
  928.     begin 
  929.     call sp_tsql_feature_not_supported() 
  930.     end 
  931. go
  932. CREATE procedure dbo.sp_unbindefault( 
  933.            in @objname    char(128), 
  934.            in @futureonly    char(10)    default NULL 
  935.            ) 
  936.     begin 
  937.     call sp_tsql_feature_not_supported() 
  938.     end 
  939. go
  940. CREATE procedure dbo.sp_unbindmsg( 
  941.            in @constraint_name char(128) 
  942.            ) 
  943.     begin 
  944.     call sp_tsql_feature_not_supported() 
  945.     end 
  946. go
  947. CREATE procedure dbo.sp_unbindrule( 
  948.            in @objname    char(128), 
  949.            in @futureonly     char(10)    default NULL 
  950.            ) 
  951.     begin 
  952.     call sp_tsql_feature_not_supported() 
  953.     end 
  954. go
  955. CREATE procedure dbo.sp_volchanged( 
  956.            in @session_id    int, 
  957.            in @device_name    char(128), 
  958.            in @action    char(7), 
  959.            in @filename    char(128)   default NULL, 
  960.            in @volume_name    char(128)   default NULL 
  961.            ) 
  962.     begin 
  963.     call sp_tsql_feature_not_supported() 
  964.     end 
  965. go
  966. CREATE procedure dbo.sp_who( 
  967.            in @login_name    char(128)   default NULL 
  968.            ) 
  969.     begin 
  970.     call sp_tsql_feature_not_supported() 
  971.     end 
  972. go
  973. CREATE procedure dbo.sp_column_privileges( 
  974.            in @table_name        char(128), 
  975.            in @table_owner        char(128)   default NULL, 
  976.            in @table_qualifier  char(128)    default NULL, 
  977.            in @column_name        char(128)   default NULL 
  978.            ) 
  979.       result ( 
  980.            table_qualifier     varchar(128), 
  981.            table_owner         varchar(128), 
  982.            table_name          varchar(128), 
  983.            column_name         varchar(128), 
  984.            grantor             varchar(128), 
  985.            grantee             varchar(128), 
  986.            privilege           varchar(128), 
  987.            is_grantable        varchar(3) ) 
  988.     begin 
  989.     declare local temporary table t_colpriv( 
  990.            table_owner         varchar(128), 
  991.            table_name          varchar(128), 
  992.            column_name         varchar(128), 
  993.            grantor             varchar(128), 
  994.            grantee             varchar(128), 
  995.            privilege           varchar(128), 
  996.            is_grantable        varchar(3) )
  997.            in SYSTEM; 
  998.      
  999.     call sp_tsql_feature_not_supported() 
  1000.     end 
  1001. go
  1002.      
  1003. CREATE procedure dbo.sp_columns(in @table_name char(128) default '%',   
  1004.                     in @table_owner char(128) default '%',   
  1005.                                     in @table_qualifier char(128) default '%',   
  1006.                                     in @column_name char(128) default '%')    
  1007.     result (
  1008.         table_qualifier    varchar(32),   
  1009.         table_owner        varchar(32),   
  1010.         table_name        varchar(32),   
  1011.         column_name        varchar(32),   
  1012.         data_type        smallint,   
  1013.         type_name        varchar(32),   
  1014.         "precision"        integer,   
  1015.         length        integer,   
  1016.         scale        smallint,   
  1017.         radix        smallint,   
  1018.         nullable        smallint,   
  1019.         remarks        varchar(254),   
  1020.         ss_data_type    smallint,   
  1021.         colid         smallint     )    
  1022.     begin   
  1023.       select cast(current database as varchar(32)),   
  1024.          cast(u.user_name as varchar(32)),   
  1025.          cast(table_name as varchar(32)),   
  1026.          cast(column_name as varchar(32)),   
  1027.          cast(d.type_id as smallint),   
  1028.          cast(ifnull(c.user_type, sst.ss_type_name, 
  1029.         
  1030.                           (select type_name from SYS.SYSUSERTYPE 
  1031.                            where  type_id=c.user_type)) as  varchar(32)), 
  1032.          cast(isnull(d."precision",width) as integer), 
  1033.          cast(width as integer ), 
  1034.          cast(scale as smallint), 
  1035.         
  1036.          cast((if d.domain_id NOT IN ( 6,7,9,8,10,11,12,13,14 ) then 
  1037.                        10 
  1038.                   else 
  1039.                        null 
  1040.                   endif) as smallint), 
  1041.          cast((if nulls='Y' then 1 else 0 endif) as smallint), 
  1042.          cast(null as varchar(254)), 
  1043.          cast(sst.ss_domain_id as smallint), 
  1044.          cast(column_id as  smallint     )  
  1045.     from SYS.SYSCOLUMN as c, 
  1046.              SYS.SYSTABLE as t,  
  1047.              SYS.SYSDOMAIN as d, 
  1048.              SYS.SYSTYPEMAP as map, 
  1049.              SYS.SYSSQLSERVERTYPE as sst, 
  1050.          SYS.SYSUSERPERMS as u 
  1051.     where 
  1052.                c.table_id=t.table_id 
  1053.        and t.table_name like @table_name  
  1054.        and t.creator=u.user_id 
  1055.        and u.user_name like @table_owner 
  1056.        and c.domain_id=d.domain_id 
  1057.        and map.sa_domain_id=c.domain_id 
  1058.        and(map.sa_user_type=c.user_type or 
  1059.               (select count(*) from SYS.SYSTYPEMAP where sa_user_type=c.user_type)=0 AND (map.sa_user_type is null)) 
  1060.               
  1061.               
  1062.           
  1063.        and sst.ss_user_type=map.ss_user_type 
  1064.        and (nullable is null or nullable='N') 
  1065.        and c.column_name like @column_name 
  1066.     end 
  1067. go
  1068. CREATE procedure dbo.sp_databases() 
  1069.     begin 
  1070.     call sp_tsql_feature_not_supported() 
  1071.     end 
  1072. go
  1073. CREATE procedure dbo.sp_datatype_info( 
  1074.            in @data_type        char(30)    default NULL 
  1075.            ) 
  1076.     begin 
  1077.     call sp_tsql_feature_not_supported() 
  1078.     end 
  1079. go
  1080. CREATE procedure dbo.sp_fkeys( 
  1081.            in @pktable_name     char(128)  default NULL, 
  1082.            in @pktable_owner    char(128)    default NULL, 
  1083.            in @pktable_qualifier char(128)    default NULL, 
  1084.            in @fktable_name     char(128)    default NULL, 
  1085.            in @fktable_owner    char(128)    default NULL, 
  1086.            in @fktable_qualifier char(128)    default NULL 
  1087.            ) 
  1088.     result ( 
  1089.         pktable_qualifier        char(128), 
  1090.         pktable_owner        char(128), 
  1091.         pktable_name        char(128), 
  1092.         pkcolumn_name        char(128), 
  1093.         fktable_qualifier        char(128), 
  1094.         fktable_owner        char(128), 
  1095.         fktable_name        char(128), 
  1096.         fkcolumn_name        char(128), 
  1097.         key_seq             smallint     , 
  1098.         update_rule            smallint, 
  1099.         delete_rule            smallint 
  1100.     ) 
  1101.     begin 
  1102.     if @pktable_name is null and @fktable_name is null then 
  1103.         return 
  1104.     end if; 
  1105.     if @pktable_name is null then 
  1106.         set @pktable_name = '%' 
  1107.     end if; 
  1108.     if @pktable_owner is null then 
  1109.         set @pktable_owner = '%' 
  1110.     end if; 
  1111.     if @fktable_name is null then 
  1112.         set @fktable_name = '%' 
  1113.     end if; 
  1114.     if @fktable_owner is null then 
  1115.         set @fktable_owner = '%' 
  1116.     end if; 
  1117.     select 
  1118.         current database, 
  1119.         po.user_name, 
  1120.         pt.table_name, 
  1121.         ptc.column_name, 
  1122.         current database, 
  1123.         fo.user_name, 
  1124.         ft.table_name, 
  1125.         ftc.column_name, 
  1126.         fkc.primary_column_id, 
  1127.         0, 
  1128.         0 
  1129.     from SYS.SYSFOREIGNKEY fk, SYS.SYSFKCOL fkc,  
  1130.         SYS.SYSTABLE pt, SYS.SYSCOLUMN ptc, SYS.SYSUSERPERMS po, 
  1131.         SYS.SYSTABLE ft, SYS.SYSCOLUMN ftc, SYS.SYSUSERPERMS fo, 
  1132.     where fk.primary_table_id   = pt.table_id 
  1133.     and   pt.table_id        = ptc.table_id 
  1134.     and   ptc.column_id        = fkc.primary_column_id 
  1135.     and   pt.creator        = po.user_id 
  1136.     and   fk.foreign_table_id   = ft.table_id 
  1137.     and   ft.table_id        = ftc.table_id 
  1138.     and   ftc.column_id        = fkc.foreign_column_id 
  1139.     and   ft.creator        = fo.user_id 
  1140.     and   fk.foreign_table_id   = fkc.foreign_table_id 
  1141.     and   fk.foreign_key_id        = fkc.foreign_key_id 
  1142.     and   ft.table_name        like @fktable_name 
  1143.     and   fo.user_name        like @fktable_owner 
  1144.     and   pt.table_name        like @pktable_name 
  1145.     and   po.user_name        like @pktable_owner 
  1146.     order by ft.table_name,fo.user_name,fkc.primary_column_id 
  1147.     end 
  1148. go
  1149. CREATE procedure dbo.sp_pkeys( 
  1150.            in @table_name        char(128), 
  1151.            in @table_owner        char(128)   default NULL, 
  1152.            in @table_qualifier  char(128)    default NULL 
  1153.            ) 
  1154.     result ( 
  1155.         table_qualifier        char(128), 
  1156.         table_owner            char(128), 
  1157.         table_name            char(128), 
  1158.         column_name            char(128), 
  1159.         key_seq             smallint      ) 
  1160.     begin 
  1161.     if @table_owner is null then 
  1162.         set @table_owner = '%' 
  1163.     end if; 
  1164.     select 
  1165.         current database, 
  1166.         user_name, 
  1167.         table_name, 
  1168.         column_name, 
  1169.         column_id 
  1170.     from SYS.SYSTABLE t, SYS.SYSCOLUMN c, SYS.SYSUSERPERM u  
  1171.     where t.table_id = c.table_id 
  1172.     and   t.creator = u.user_id 
  1173.     and   table_name like @table_name 
  1174.     and   user_name like @table_owner 
  1175.     and   pkey = 'Y' 
  1176.     order by table_name,user_name,column_id 
  1177.     end 
  1178. go
  1179. create procedure dbo.sp_serverinfo
  1180.     @request    varchar(30) = NULL
  1181.     as
  1182.     declare @db_collation_name    char(30)
  1183.     
  1184.     select @db_collation_name = (select default_collation from SYS.SYSINFO)
  1185.     if (@db_collation_name is null)
  1186.         begin
  1187.         select @db_collation_name = 'internal'
  1188.     end
  1189.     
  1190.     -- If the collation information does not exist, use the default
  1191.     if not exists ( select * from SYS.SYSCOLLATIONMAPPINGS
  1192.                     where collation_label = @db_collation_name )
  1193.     begin
  1194.         select @db_collation_name = 'internal'
  1195.     end
  1196.     if (@request = 'server_soname')
  1197.     if( (select case_sensitivity from SYS.SYSINFO) = 'N' )
  1198.         -- Case insensitive sort order
  1199.         select so_caseless_label from SYS.SYSCOLLATIONMAPPINGS
  1200.             where collation_label = @db_collation_name
  1201.     else 
  1202.             -- Case sensitive sort order
  1203.         select so_case_label from SYS.SYSCOLLATIONMAPPINGS
  1204.             where collation_label = @db_collation_name
  1205.     else if (@request = 'server_csname')
  1206.     select cs_label from SYS.SYSCOLLATIONMAPPINGS
  1207.         where collation_label = @db_collation_name
  1208. go
  1209. CREATE procedure dbo.sp_server_info( 
  1210.            in @attribute_id        int        default NULL 
  1211.            ) 
  1212.     begin 
  1213.     call sp_tsql_feature_not_supported() 
  1214.     end 
  1215. go
  1216. CREATE procedure dbo.sp_special_columns( 
  1217.            in @table_name        char(128), 
  1218.            in @table_owner        char(128)   default NULL, 
  1219.            in @table_qualifier  char(128)    default NULL, 
  1220.            in @col_type        char(1)     default 'R' 
  1221.            ) 
  1222.         result ( 
  1223.         scope            int , 
  1224.         column_name        char(128), 
  1225.         data_type        smallint, 
  1226.         type_name        char(128), 
  1227.         "precision"        int, 
  1228.         length            int, 
  1229.         scale            smallint  
  1230.         ) 
  1231.     begin 
  1232.     declare @indid            int; 
  1233.     declare @full_table_name    long varchar; 
  1234.     declare objid            int; 
  1235.     declare indexid            int; 
  1236.     if @table_owner is null then 
  1237.         set @full_table_name = @table_name 
  1238.     else 
  1239.         set @full_table_name = @table_owner || '.' || @table_name 
  1240.     end if; 
  1241.     set objid = object_id(@full_table_name); 
  1242.     if objid is null then 
  1243.         return 
  1244.     end if; 
  1245.     if @col_type = 'V' then 
  1246.         select    
  1247.         0, 
  1248.         column_name, 
  1249.         d.type_id, 
  1250.         d.domain_name, 
  1251.         isnull(d."precision",width), 
  1252.         width, 
  1253.         scale 
  1254.         from SYS.SYSCOLUMN c, SYS.SYSDOMAIN d 
  1255.         where table_id = objid - 100000 
  1256.           and c.domain_id = d.domain_id 
  1257.           and ("default" = 'autoincrement' or "default" = 'timestamp'); 
  1258.         return 
  1259.     end if; 
  1260.      
  1261.     if exists (select * from SYS.SYSCOLUMN 
  1262.            where table_id = objid - 100000 and pkey = 'Y') then 
  1263.         select 
  1264.         0, 
  1265.         column_name, 
  1266.         d.type_id, 
  1267.         d.domain_name, 
  1268.         isnull(d."precision",width), 
  1269.         width, 
  1270.         scale 
  1271.         from SYS.SYSCOLUMN c, SYS.SYSDOMAIN d 
  1272.         where table_id = objid - 100000 
  1273.           and c.domain_id = d.domain_id 
  1274.           and pkey = 'Y' 
  1275.         order by column_id; 
  1276.         return 
  1277.     end if; 
  1278.      
  1279.     set indexid = (select min(index_id) from SYS.SYSINDEX 
  1280.                where table_id = objid - 100000 and "unique" = 'U'); 
  1281.     if indexid is not null then 
  1282.         select    
  1283.         0, 
  1284.         column_name, 
  1285.         d.type_id, 
  1286.         d.domain_name, 
  1287.         isnull(d."precision",width), 
  1288.         width, 
  1289.         scale 
  1290.         from SYS.SYSCOLUMN c, SYS.SYSDOMAIN d, SYS.SYSINDEX ix, SYS.SYSIXCOL ic 
  1291.         where c.table_id = objid - 100000 
  1292.           and c.domain_id = d.domain_id 
  1293.           and ix.table_id = c.table_id 
  1294.           and ix.index_id = indexid 
  1295.           and ic.table_id = ix.table_id 
  1296.           and ic.index_id = ix.index_id  
  1297.         order by ic.sequence; 
  1298.         return 
  1299.     end if; 
  1300.     end 
  1301. go
  1302. CREATE procedure dbo.sp_sproc_columns( 
  1303.            in @sp_name        char(128), 
  1304.            in @sp_owner        char(128)    default NULL, 
  1305.            in @sp_qualifier        char(128)    default NULL, 
  1306.            in @column_name        char(128)    default NULL 
  1307.            ) 
  1308.         result ( 
  1309.         procedure_qualifier char(128),  
  1310.         procedure_owner        char(128),  
  1311.         procedure_name        char(128),  
  1312.         column_name        char(128),  
  1313.         column_type        smallint, 
  1314.         data_type        smallint, 
  1315.         type_name        char(128), 
  1316.         "precision"        int, 
  1317.         length            int, 
  1318.         scale            smallint, 
  1319.         radix            smallint, 
  1320.         nullable        smallint, 
  1321.         remarks            varchar(254), 
  1322.         ss_data_type        smallint, 
  1323.         colid             smallint      
  1324.         ) 
  1325.     begin 
  1326.     declare @full_sp_name        long varchar; 
  1327.     declare objid            int; 
  1328.     if @sp_owner is null then 
  1329.         set @full_sp_name = @sp_name 
  1330.     else 
  1331.         set @full_sp_name = @sp_owner || '.' || @sp_name 
  1332.     end if; 
  1333.     if @column_name is null then 
  1334.         set @column_name = '%' 
  1335.     end if; 
  1336.     set objid = object_id( @full_sp_name ); 
  1337.     select 
  1338.         current database, 
  1339.         user_name, 
  1340.         proc_name, 
  1341.         parm_name, 
  1342.         0, 
  1343.         d.type_id, 
  1344.         domain_name, 
  1345.         d."precision", 
  1346.         width, 
  1347.         scale, 
  1348.         if  locate(d.domain_name,'char') = 0   
  1349.         and locate(d.domain_name,'binary') = 0   
  1350.         and locate(d.domain_name,'time') = 0   
  1351.         and locate(d.domain_name,'date') = 0   
  1352.            then 10 else NULL endif,  
  1353.         if "default" is not null then 1 else 0 endif, 
  1354.         null, 
  1355.         pp.domain_id, 
  1356.         parm_id 
  1357.     from SYS.SYSPROCEDURE p, SYS.SYSPROCPARM pp, SYS.SYSDOMAIN d, 
  1358.          SYS.SYSUSERPERM u 
  1359.     where p.proc_id = objid - 200000 
  1360.     and   p.proc_id = pp.proc_id 
  1361.     and   pp.domain_id = d.domain_id 
  1362.     and   p.creator = u.user_id 
  1363.     and   pp.parm_type = 0 
  1364.     and   parm_name like @column_name 
  1365.     end 
  1366. go
  1367. CREATE procedure dbo.sp_statistics(
  1368.         in @table_name        char(128)    default '%',  
  1369.         in @table_owner        char(128)    default '%',  
  1370.         in @table_qualifier char(128)    default '%',  
  1371.         in @index_name        char(128)    default '%',  
  1372.         in @is_unique        char(1)    default 'N')   
  1373.         result (
  1374.         table_qualifier        varchar(32),  
  1375.         table_owner        varchar(32),  
  1376.         table_name        varchar(32),  
  1377.         non_unique        smallint,  
  1378.         index_qualifier        varchar(32),  
  1379.         index_name        varchar(32),  
  1380.         "type"            smallint,  
  1381.         seq_in_index        smallint,  
  1382.         collation        char(1),  
  1383.         cardinality        integer,  
  1384.         pages            integer)   
  1385.     begin  
  1386.       declare @full_table_name long varchar;   
  1387.       if @table_owner='%' then   
  1388.     set @full_table_name=@table_name   
  1389.       else  
  1390.     set @full_table_name=@table_owner||'.'||@table_name   
  1391.       end if;   
  1392.      
  1393.       select convert(varchar(32),db_name(*)) as table_qualifier,  
  1394.          convert(varchar(32),user_name(tab.creator)) as table_owner,  
  1395.          convert(varchar(32),tab.table_name) as table_name,  
  1396.          convert(smallint,null) as non_unique,  
  1397.          convert(varchar(32),null) as index_qualifier,  
  1398.          convert(varchar(32),null) as index_name,  
  1399.          convert(smallint,0) as "type",  
  1400.          convert(smallint,0) as seq_in_index,  
  1401.          convert(char(1),null) as collation,  
  1402.          convert(integer,tab."count") as cardinality,  
  1403.          convert(integer,tab."count") as pages  
  1404.       from SYS.SYSTABLE as tab   
  1405.       where tab.table_id=(object_id(@full_table_name)-100000) 
  1406.       
  1407.       union all   
  1408.       
  1409.       
  1410.       select convert(varchar(32),db_name(*)) as table_qualifier,  
  1411.          convert(varchar(32),user_name(tab.creator)) as table_owner,  
  1412.          convert(varchar(32),tab.table_name) as table_name,  
  1413.          convert(smallint,if "unique"='Y' then 0 else 1 endif) as non_unique,  
  1414.          convert(varchar(32),tab.table_name) as index_qualifier,  
  1415.          convert(varchar(32),ind.index_name) as index_name,  
  1416.          convert(smallint,3) as "type",  
  1417.          convert( smallint     ,ixcol.column_id) as seq_in_index,  
  1418.          convert(char(1),ixcol."order") as collation,  
  1419.          convert(integer,tab."count") as cardinality,  
  1420.          convert(integer,tab."count") as pages  
  1421.       from SYS.SYSTABLE as tab,sysindex as ind,sysixcol as ixcol   
  1422.       where tab.table_id=(object_id(@full_table_name)-100000)   
  1423.              and ind.table_id=tab.table_id   
  1424.         and ixcol.index_id=ind.index_id   
  1425.         and ixcol.table_id=ind.table_id   
  1426.         and ind."unique"<>'U'     
  1427.         and ind.index_name like @index_name   
  1428.         and(@is_unique='Y' or ind."unique"='N')   
  1429.             
  1430.       order by 4 asc,7 asc,6 asc,8 asc   
  1431.     end  
  1432. go
  1433. CREATE procedure dbo.sp_stored_procedures( 
  1434.            in @sp_name        char(128)    default NULL, 
  1435.            in @sp_owner        char(128)    default NULL, 
  1436.            in @sp_qualifier        char(128)    default NULL 
  1437.            ) 
  1438.     result ( 
  1439.         procedure_qualifier char(128), 
  1440.         procedure_owner        char(128), 
  1441.         procedure_name        char(128), 
  1442.         num_input_params    int, 
  1443.         num_output_params   int, 
  1444.         num_result_sets        int, 
  1445.         remarks            varchar(254) ) 
  1446.     begin 
  1447.     if @sp_name is null then 
  1448.         set @sp_name = '%' 
  1449.     else 
  1450.         if (@sp_owner is null) and (charindex('%', @sp_name) = 0) then 
  1451.         if exists (select * from SYS.SYSPROCEDURE, SYS.SYSUSERPERMS 
  1452.                 where creator = user_id 
  1453.                 and   user_name = user 
  1454.                 and   proc_name = @sp_name ) then 
  1455.             set @sp_owner = user 
  1456.         end if 
  1457.         end if 
  1458.     end if; 
  1459.     if @sp_owner is null then 
  1460.         set @sp_owner = '%'  
  1461.     end if; 
  1462.     select  
  1463.         current database, 
  1464.         user_name, 
  1465.         proc_name, 
  1466.         (select count(*) from SYS.SYSPROCPARM 
  1467.          where parm_mode_in = 'Y' 
  1468.          and   parm_type = 0 
  1469.          and   proc_id = p.proc_id), 
  1470.         (select count(*) from SYS.SYSPROCPARM 
  1471.          where parm_mode_out = 'Y' 
  1472.          and   parm_type = 0 
  1473.          and   proc_id = p.proc_id), 
  1474.         if exists (select * from SYS.SYSPROCPARM 
  1475.                where parm_type = 1 
  1476.                and   proc_id = p.proc_id) then 1 else 0 endif, 
  1477.         null 
  1478.     from SYS.SYSPROCEDURE p, SYS.SYSUSERPERM u 
  1479.     where proc_name like @sp_name 
  1480.     and   user_name like @sp_owner 
  1481.     and   p.creator = u.user_id 
  1482.     end 
  1483. go
  1484. CREATE procedure dbo.sp_table_privileges( 
  1485.            in @table_name        char(128), 
  1486.            in @table_owner        char(128)   default NULL, 
  1487.            in @table_qualifier  char(128)    default NULL 
  1488.            ) 
  1489.     begin 
  1490.     call sp_tsql_feature_not_supported() 
  1491.     end 
  1492. go
  1493. CREATE procedure dbo.sp_tables(
  1494.         in @table_name        char(128)    default '%', 
  1495.         in @table_owner        char(128)    default '%', 
  1496.         in @table_qualifier char(128)    default '%', 
  1497.         in @table_type        char(128)    default '%') 
  1498.         result (
  1499.         table_qualifier        varchar(30), 
  1500.         table_owner        varchar(30), 
  1501.         table_name        varchar(30), 
  1502.         table_type        varchar(30), 
  1503.         remarks            varchar(254)) 
  1504.     begin 
  1505.       select cast(current database as varchar(30)), 
  1506.          cast(creator as varchar(30)), 
  1507.          cast(tname as varchar(30)), 
  1508.          cast((if tabletype='VIEW' then 
  1509.                        'VIEW' 
  1510.                else 
  1511.                     if creator='SYS' and tabletype='TABLE' then 
  1512.                              'SYSTEM TABLE' 
  1513.                         else 
  1514.                              'TABLE' 
  1515.                         endif 
  1516.                 endif) as varchar(30)), 
  1517.          cast(null as varchar(254)) 
  1518.       from SYS.SYSCATALOG 
  1519.       where (creator like @table_owner) 
  1520.     and (tname like @table_name) 
  1521.     and(   @table_type='%' 
  1522.         or(locate(@table_type,'''TABLE''')<>0 
  1523.         and tabletype<>'VIEW' and creator<>'SYS') 
  1524.     or(locate(@table_type,'''VIEW''')<>0 
  1525.        and tabletype='VIEW') 
  1526.     or(locate(@table_type,'''SYSTEM TABLE''')<>0 
  1527.        and tabletype<>'VIEW' and creator='SYS')) 
  1528.     and(current database like @table_qualifier) 
  1529.     end 
  1530. go
  1531. CREATE procedure dbo.sp_tsql_environment()
  1532.     begin
  1533.     if db_property( 'IQStore' ) = 'OFF' then
  1534.         -- ASA datastore
  1535.         SET TEMPORARY OPTION TSQL_VARIABLES='ON';
  1536.         SET TEMPORARY OPTION ANSI_BLANKS='ON';
  1537.         SET TEMPORARY OPTION TSQL_HEX_CONSTANT='ON';
  1538.         SET TEMPORARY OPTION CHAINED='OFF';
  1539.         SET TEMPORARY OPTION QUOTED_IDENTIFIER='OFF';
  1540.         SET TEMPORARY OPTION ALLOW_NULLS_BY_DEFAULT='OFF';
  1541.         SET TEMPORARY OPTION AUTOMATIC_TIMESTAMP='ON';
  1542.         SET TEMPORARY OPTION ANSINULL='OFF';
  1543.         SET TEMPORARY OPTION CONTINUE_AFTER_RAISERROR='ON';
  1544.         SET TEMPORARY OPTION FLOAT_AS_DOUBLE='ON';
  1545.         SET TEMPORARY OPTION ISOLATION_LEVEL='1';
  1546.         SET TEMPORARY OPTION DATE_FORMAT='YYYY-MM-DD';
  1547.         SET TEMPORARY OPTION TIMESTAMP_FORMAT='YYYY-MM-DD HH:NN:SS.SSS';
  1548.         SET TEMPORARY OPTION TIME_FORMAT='HH:NN:SS.SSS';
  1549.         SET TEMPORARY OPTION DATE_ORDER='MDY';
  1550.         SET TEMPORARY OPTION ESCAPE_CHARACTER='OFF';
  1551.     end if;
  1552.     end 
  1553. go
  1554. CREATE procedure dbo.sp_login_environment()
  1555.     begin 
  1556.     if connection_property( 'CommProtocol' ) = 'TDS' then
  1557.         call dbo.sp_tsql_environment();
  1558.     end if;
  1559.     end 
  1560. go
  1561. CREATE function dbo.col_length( 
  1562.            in @object_name     char(128),  
  1563.            in @column_name     char(128) 
  1564.            ) 
  1565.     returns integer 
  1566.     on exception resume 
  1567.     begin 
  1568.     declare sz integer; 
  1569.     declare objid integer; 
  1570.     
  1571.     set objid = object_id( @object_name ); 
  1572.     select width into sz 
  1573.     from SYS.SYSCOLUMN 
  1574.     where table_id = objid - 100000 
  1575.     and column_name = @column_name; 
  1576.     
  1577.     return( sz ); 
  1578.     end 
  1579. go
  1580. CREATE function dbo.col_name( 
  1581.            in @object_id integer, 
  1582.            in @column_id integer, 
  1583.            in @database_id integer default NULL 
  1584.            ) 
  1585.     returns char(128) 
  1586.     on exception resume 
  1587.     begin 
  1588.     declare cname char(128); 
  1589.     
  1590.     select "name" into cname 
  1591.     from dbo.syscolumns 
  1592.     where id = @object_id 
  1593.     and colid = @column_id; 
  1594.     
  1595.     if SQLCODE <> 0 then 
  1596.         return( NULL ) 
  1597.     end if; 
  1598.     return( cname ); 
  1599.     end 
  1600. go
  1601. CREATE function dbo.index_col( 
  1602.            in @object_name char(128),  
  1603.            in @index_id integer, 
  1604.            in @key_# integer,  
  1605.            in @user_id integer default NULL 
  1606.            ) 
  1607.     returns char(128) 
  1608.     on exception resume 
  1609.     begin 
  1610.     declare cname char(128); 
  1611.     declare objid integer; 
  1612.     declare indid integer; 
  1613.     
  1614.     set objid = object_id( @object_name ); 
  1615.     if objid is null then return( NULL ) end if; 
  1616.       
  1617.     select column_name into cname 
  1618.     from SYS.SYSCOLUMN, SYS.SYSIXCOL 
  1619.     where SYSIXCOL.table_id = objid - 100000 
  1620.     and index_id = @index_id 
  1621.     and sequence = @key_# 
  1622.     and SYSIXCOL.table_id=SYSCOLUMN.table_id 
  1623.     and SYSIXCOL.column_id=SYSCOLUMN.column_id; 
  1624.     
  1625.     return( cname ); 
  1626.     end 
  1627. go
  1628. CREATE function dbo.object_id( 
  1629.            in @object_name char(128) 
  1630.            ) 
  1631.     returns integer 
  1632.     on exception resume 
  1633.     begin 
  1634.     declare obj_owner    char(128); 
  1635.     declare obj_name    char(128); 
  1636.     declare id        integer; 
  1637.     declare posn    integer; 
  1638.     
  1639.     set posn = locate(@object_name,'.'); 
  1640.     if( posn <> 0 ) then 
  1641.         set obj_owner = substr(@object_name,1,posn-1); 
  1642.         set obj_name = substr(@object_name,posn+1); 
  1643.         select o.id into id 
  1644.         from dbo.sysobjects o, SYS.SYSUSERPERMS p 
  1645.         where  o."name"=obj_name 
  1646.         and    o.uid=p.user_id 
  1647.         and    p.user_name=obj_owner; 
  1648.     else 
  1649.         select o.id into id 
  1650.         from dbo.sysobjects o 
  1651.         where "name"=@object_name; 
  1652.     end if; 
  1653.     
  1654.     return( id ); 
  1655.     end 
  1656. go
  1657. CREATE function dbo.object_name( 
  1658.            in @object_id integer, 
  1659.            in @database_id integer default NULL 
  1660.            ) 
  1661.     returns char(128 ) 
  1662.     on exception resume 
  1663.     begin 
  1664.     declare obj_name char(128); 
  1665.     
  1666.     select "name" into obj_name 
  1667.     from dbo.sysobjects 
  1668.     where id = @object_id; 
  1669.     
  1670.     return( obj_name ); 
  1671.     end 
  1672. go
  1673. CREATE function dbo.proc_role( 
  1674.            in @role_type char(10) 
  1675.            ) 
  1676.     returns integer 
  1677.     on exception resume 
  1678.     begin 
  1679.     return( 0 ); 
  1680.     end 
  1681. go
  1682. CREATE function dbo.show_role() 
  1683.     returns char(128) 
  1684.     on exception resume 
  1685.     begin 
  1686.     return( NULL ); 
  1687.     end 
  1688. go
  1689. CREATE function dbo.xp_startmail( 
  1690.         in mail_user   char(254)   default null, 
  1691.         in mail_password char(254) default null ) 
  1692.     returns int 
  1693.     external name 'xp_startmail@dbextf6.dll;Windows3x:xp_startmail@dbextf6w.dll' 
  1694. go
  1695.     
  1696. CREATE function dbo.xp_stopmail() 
  1697.     returns int 
  1698.     external name 'xp_stopmail@dbextf6.dll;Windows3x:xp_stopmail@dbextf6w.dll' 
  1699. go
  1700. CREATE function dbo.xp_sendmail(     
  1701.         in recipient           char(254), 
  1702.         in subject             char(254)   default null, 
  1703.         in cc_recipient        char(254)   default null, 
  1704.         in bcc_recipient       char(254)   default null, 
  1705.         in query               char(254)   default null, 
  1706.         in "message"         char(254)   default null, 
  1707.         in attachname          char(254)   default null, 
  1708.         in attach_result       int         default 0, 
  1709.         in echo_error          int         default 1, 
  1710.         in include_file        char(254)   default null, 
  1711.         in no_column_header    int         default 0, 
  1712.         in no_output           int         default 0, 
  1713.         in width               int         default 80, 
  1714.         in separator           char(1)     default '\t', 
  1715.         in dbuser              char(254)   default 'guest', 
  1716.         in dbname              char(254)   default 'master', 
  1717.         in type                char(254)   default null, 
  1718.         in include_query       int         default 0 ) 
  1719.     returns int 
  1720.     external name 'xp_sendmail@dbextf6.dll;Windows3x:xp_sendmail@dbextf6w.dll' 
  1721. go
  1722. CREATE function dbo.xp_cmdshell( 
  1723.         in command        char(254) default null, 
  1724.         in redir_output    char(254) default 'no_output' ) 
  1725.     returns int 
  1726.     external name 'xp_cmdshell@dbextf6.dll;Netware:xp_cmdshell;Windows3x:xp_cmdshell@dbextf6w.dll' 
  1727. go
  1728. CREATE procedure dbo.xp_sprintf( 
  1729.         out    output_buffer    char(254), 
  1730.         in    format        char(254), 
  1731.         in    parm1        char(254) default null, 
  1732.         in    parm2        char(254) default null, 
  1733.         in    parm3        char(254) default null, 
  1734.         in    parm4        char(254) default null, 
  1735.         in    parm5        char(254) default null, 
  1736.         in    parm6        char(254) default null, 
  1737.         in    parm7        char(254) default null, 
  1738.         in    parm8        char(254) default null, 
  1739.         in    parm9        char(254) default null, 
  1740.         in    parm10        char(254) default null, 
  1741.         in    parm11        char(254) default null, 
  1742.         in    parm12        char(254) default null, 
  1743.         in    parm13        char(254) default null, 
  1744.         in    parm14        char(254) default null, 
  1745.         in    parm15        char(254) default null, 
  1746.         in    parm16        char(254) default null, 
  1747.         in    parm17        char(254) default null, 
  1748.         in    parm18        char(254) default null, 
  1749.         in    parm19        char(254) default null, 
  1750.         in    parm20        char(254) default null, 
  1751.         in    parm21        char(254) default null, 
  1752.         in    parm22        char(254) default null, 
  1753.         in    parm23        char(254) default null, 
  1754.         in    parm24        char(254) default null, 
  1755.         in    parm25        char(254) default null, 
  1756.         in    parm26        char(254) default null, 
  1757.         in    parm27        char(254) default null, 
  1758.         in    parm28        char(254) default null, 
  1759.         in    parm29        char(254) default null, 
  1760.         in    parm30        char(254) default null, 
  1761.         in    parm31        char(254) default null, 
  1762.         in    parm32        char(254) default null, 
  1763.         in    parm33        char(254) default null, 
  1764.         in    parm34        char(254) default null, 
  1765.         in    parm35        char(254) default null, 
  1766.         in    parm36        char(254) default null, 
  1767.         in    parm37        char(254) default null, 
  1768.         in    parm38        char(254) default null, 
  1769.         in    parm39        char(254) default null, 
  1770.         in    parm40        char(254) default null, 
  1771.         in    parm41        char(254) default null, 
  1772.         in    parm42        char(254) default null, 
  1773.         in    parm43        char(254) default null, 
  1774.         in    parm44        char(254) default null, 
  1775.         in    parm45        char(254) default null, 
  1776.         in    parm46        char(254) default null, 
  1777.         in    parm47        char(254) default null, 
  1778.         in    parm48        char(254) default null, 
  1779.         in    parm49        char(254) default null, 
  1780.         in    parm50        char(254) default null ) 
  1781.         external name 'OS2:xp_sprintf[varargs]@dbextf6.dll;Windows95:xp_sprintf[varargs]@dbextf6.dll;WindowsNT:xp_sprintf[varargs]@dbextf6.dll;Netware:xp_sprintf[varargs];Windows3x:xp_sprintf[varargs]@dbextf6w.dll' 
  1782. go
  1783. CREATE procedure dbo.xp_scanf( 
  1784.         in    input_buffer    char(254), 
  1785.         in    format        char(254), 
  1786.         out    parm1        char(254) default null, 
  1787.         out    parm2        char(254) default null, 
  1788.         out    parm3        char(254) default null, 
  1789.         out    parm4        char(254) default null, 
  1790.         out    parm5        char(254) default null, 
  1791.         out    parm6        char(254) default null, 
  1792.         out    parm7        char(254) default null, 
  1793.         out    parm8        char(254) default null, 
  1794.         out    parm9        char(254) default null, 
  1795.         out    parm10        char(254) default null, 
  1796.         out    parm11        char(254) default null, 
  1797.         out    parm12        char(254) default null, 
  1798.         out    parm13        char(254) default null, 
  1799.         out    parm14        char(254) default null, 
  1800.         out    parm15        char(254) default null, 
  1801.         out    parm16        char(254) default null, 
  1802.         out    parm17        char(254) default null, 
  1803.         out    parm18        char(254) default null, 
  1804.         out    parm19        char(254) default null, 
  1805.         out    parm20        char(254) default null, 
  1806.         out    parm21        char(254) default null, 
  1807.         out    parm22        char(254) default null, 
  1808.         out    parm23        char(254) default null, 
  1809.         out    parm24        char(254) default null, 
  1810.         out    parm25        char(254) default null, 
  1811.         out    parm26        char(254) default null, 
  1812.         out    parm27        char(254) default null, 
  1813.         out    parm28        char(254) default null, 
  1814.         out    parm29        char(254) default null, 
  1815.         out    parm30        char(254) default null, 
  1816.         out    parm31        char(254) default null, 
  1817.         out    parm32        char(254) default null, 
  1818.         out    parm33        char(254) default null, 
  1819.         out    parm34        char(254) default null, 
  1820.         out    parm35        char(254) default null, 
  1821.         out    parm36        char(254) default null, 
  1822.         out    parm37        char(254) default null, 
  1823.         out    parm38        char(254) default null, 
  1824.         out    parm39        char(254) default null, 
  1825.         out    parm40        char(254) default null, 
  1826.         out    parm41        char(254) default null, 
  1827.         out    parm42        char(254) default null, 
  1828.         out    parm43        char(254) default null, 
  1829.         out    parm44        char(254) default null, 
  1830.         out    parm45        char(254) default null, 
  1831.         out    parm46        char(254) default null, 
  1832.         out    parm47        char(254) default null, 
  1833.         out    parm48        char(254) default null, 
  1834.         out    parm49        char(254) default null, 
  1835.         out    parm50        char(254) default null ) 
  1836.         external name 'OS2:xp_scanf[varargs]@dbextf6.dll;Windows95:xp_scanf[varargs]@dbextf6.dll;WindowsNT:xp_scanf[varargs]@dbextf6.dll;Netware:xp_scanf[varargs];Windows3x:xp_scanf[varargs]@dbextf6w.dll' 
  1837. go
  1838. CREATE function dbo.xp_msver( 
  1839.         in the_option        char(254) default 'ProductName' ) 
  1840.     returns char( 254 ) 
  1841.     begin 
  1842.         declare r char( 254 ); 
  1843.         declare s char( 254 ); 
  1844.         
  1845.         case the_option 
  1846.         when 'ProductName' then 
  1847.         select property( 'ProductName' ) into r from dummy; 
  1848.         when 'ProductVersion' then 
  1849.         select property( 'ProductVersion' ) into r from dummy; 
  1850.         when 'CompanyName' then 
  1851.         select property( 'CompanyName' ) into r from dummy; 
  1852.         when 'LegalCopyright' then 
  1853.         select property( 'LegalCopyright' ) into r from dummy; 
  1854.         when 'LegalTrademarks' then 
  1855.         select property( 'LegalTrademarks' ) into r from dummy; 
  1856.         when 'FileDescription' then 
  1857.             select property( 'ProductName' ) into r from dummy; 
  1858.         select property( 'Platform' ) into s from dummy; 
  1859.                set r = r || ' ' || s 
  1860.         else 
  1861.             set r = '<unknown>' 
  1862.         end case ; 
  1863.     
  1864.         return( r ); 
  1865.     end 
  1866.     
  1867. go
  1868. CREATE procedure dbo.sa_db_info( IN dbidparm int default NULL ) 
  1869.     result ( 
  1870.         Number             int,  
  1871.         Alias              varchar(255),  
  1872.         File               varchar(255),  
  1873.     ConnCount          int,  
  1874.         PageSize           int,  
  1875.         LogName            varchar(255) 
  1876.     ) 
  1877. begin 
  1878.     declare dbid           int; 
  1879.     declare local temporary table t_db_info(  
  1880.         Number             int        null, 
  1881.         Alias              varchar(255) null, 
  1882.         File               varchar(255) null, 
  1883.     ConnCount       int        null, 
  1884.         PageSize           int        null, 
  1885.         LogName            varchar(255) null
  1886.     ) in SYSTEM on commit preserve rows; 
  1887.     if( dbidparm is not NULL ) then 
  1888.         set dbid = dbidparm; 
  1889.     else 
  1890.     set dbid = next_database( NULL ); 
  1891.     end if; 
  1892.     lbl: 
  1893.     loop 
  1894.     if dbid is NULL then 
  1895.         leave lbl; 
  1896.     end if; 
  1897.     insert into t_db_info values ( 
  1898.         dbid,  
  1899.         db_property( 'Alias', dbid ), 
  1900.         db_property( 'File', dbid ), 
  1901.         db_property( 'ConnCount', dbid ), 
  1902.         db_property( 'PageSize', dbid ), 
  1903.         db_property( 'LogName', dbid ), 
  1904.     ); 
  1905.     if( dbidparm is not NULL ) then 
  1906.         leave lbl; 
  1907.     else 
  1908.         set dbid = next_database( dbid ); 
  1909.         end if; 
  1910.     end loop lbl; 
  1911.     select * from t_db_info; 
  1912. end
  1913. go
  1914. CREATE procedure dbo.sa_conn_info( IN connidparm int default NULL ) 
  1915.     result ( 
  1916.         Number             int,  
  1917.         Name               varchar(255),  
  1918.         Userid             varchar(255),  
  1919.     DBNumber       int,  
  1920.         LastReqTime        varchar(255),  
  1921.         ProcessTime        varchar(255),  
  1922.         Port               int, 
  1923.         ReqType            varchar(255),  
  1924.         CommLink           varchar(255),  
  1925.         NodeAddr           varchar(255), 
  1926.     LastIdle       int, 
  1927.     CurrTaskSw       int, 
  1928.     BlockedOn       int, 
  1929.     UncmtOps       int 
  1930.         ) 
  1931. begin 
  1932.     declare connid         int; 
  1933.     declare local temporary table t_conn_info(  
  1934.         Number             int        null,  
  1935.         Name               varchar(255) null,  
  1936.         Userid             varchar(255) null,  
  1937.     DBNumber       int        null,  
  1938.         LastReqTime        varchar(255) null,  
  1939.         ProcessTime        varchar(255) null,  
  1940.         Port               int        null, 
  1941.         ReqType            varchar(255) null,  
  1942.         CommLink           varchar(255) null,  
  1943.         NodeAddr           varchar(255) null, 
  1944.     LastIdle       int        null, 
  1945.     CurrTaskSw       int        null, 
  1946.     BlockedOn       int        null, 
  1947.     UncmtOps       int         null
  1948.     ) in SYSTEM on commit preserve rows; 
  1949.     if( connidparm is not NULL ) then 
  1950.         set connid = connidparm; 
  1951.     else 
  1952.     set connid = next_connection( connid, NULL ); 
  1953.     end if; 
  1954.     lbl: 
  1955.     loop 
  1956.         if connid is NULL then 
  1957.             leave lbl 
  1958.         end if; 
  1959.         insert into t_conn_info values ( 
  1960.             connid, 
  1961.             connection_property( 'Name', connid ), 
  1962.             connection_property( 'Userid', connid ), 
  1963.             connection_property( 'DBNumber', connid ), 
  1964.             connection_property( 'LastReqTime', connid ), 
  1965.             connection_property( 'ProcessTime', connid ), 
  1966.             connection_property( 'Port', connid ), 
  1967.             connection_property( 'ReqType', connid ), 
  1968.             connection_property( 'CommLink', connid ), 
  1969.             connection_property( 'NodeAddress', connid ), 
  1970.             connection_property( 'LastIdle', connid ), 
  1971.             connection_property( 'CurrTaskSw', connid ), 
  1972.             connection_property( 'BlockedOn', connid ), 
  1973.             connection_property( 'UncmtOps', connid ) 
  1974.         ); 
  1975.     if( connidparm is not NULL ) then 
  1976.         leave lbl; 
  1977.     else 
  1978.         set connid = next_connection( connid, NULL ); 
  1979.     end if; 
  1980.     end loop lbl; 
  1981.     select * from t_conn_info; 
  1982. end
  1983. go
  1984. CREATE procedure dbo.sa_eng_properties() 
  1985.     result ( 
  1986.     PropNum            int, 
  1987.     PropName       varchar(255), 
  1988.         PropDescription    varchar(255),  
  1989.         Value              varchar(255) 
  1990.     )  
  1991. begin 
  1992.     declare i           int; 
  1993.     declare local temporary table t_eng_properties(  
  1994.     PropNum            int        null, 
  1995.     PropName       varchar(255) null, 
  1996.         PropDescription    varchar(255) null,  
  1997.         Value              varchar(255) null
  1998.     ) in SYSTEM on commit preserve rows; 
  1999.     set i = 0; 
  2000.     proploop: 
  2001.     loop 
  2002.     if( property( i ) is not NULL ) then 
  2003.         insert into t_eng_properties values ( 
  2004.         i, 
  2005.         property_name( i ), 
  2006.         property_description( i ), 
  2007.         property( i ) 
  2008.         ); 
  2009.     else 
  2010.         if( i >   200   ) then 
  2011.         leave proploop; 
  2012.         end if; 
  2013.     end if; 
  2014.     set i = i + 1; 
  2015.     end loop proploop; 
  2016.     select * from t_eng_properties; 
  2017. end
  2018. go
  2019. CREATE procedure dbo.sa_db_properties( IN dbidparm int default NULL ) 
  2020.     result ( 
  2021.         Number             int,  
  2022.     PropNum            int, 
  2023.     PropName       varchar(255), 
  2024.         PropDescription    varchar(255),  
  2025.         Value              varchar(255) 
  2026.     )  
  2027. begin 
  2028.     declare dbid           int; 
  2029.     declare i           int; 
  2030.     declare local temporary table t_db_properties(  
  2031.         Number             int        null,  
  2032.     PropNum            int        null, 
  2033.     PropName       varchar(255) null, 
  2034.         PropDescription    varchar(255) null,  
  2035.         Value              varchar(255) null
  2036.     ) in SYSTEM on commit preserve rows; 
  2037.     if( dbidparm is not NULL ) then 
  2038.         set dbid = dbidparm; 
  2039.     else 
  2040.     set dbid = next_database( NULL ); 
  2041.     end if; 
  2042.     dbloop: 
  2043.     loop 
  2044.         if dbid is NULL then 
  2045.             leave dbloop; 
  2046.         end if; 
  2047.     set i = 0; 
  2048.     proploop: 
  2049.     loop 
  2050.         if( db_property( i, dbid ) is not NULL ) then 
  2051.         insert into t_db_properties values ( 
  2052.             dbid,  
  2053.             i, 
  2054.             property_name( i ), 
  2055.             property_description( i ), 
  2056.             db_property( i, dbid ) 
  2057.         ); 
  2058.         else 
  2059.             if( i >   200   ) then 
  2060.             leave proploop; 
  2061.         end if; 
  2062.         end if; 
  2063.         set i = i + 1; 
  2064.     end loop proploop; 
  2065.     if( dbidparm is not NULL ) then 
  2066.         leave dbloop; 
  2067.     else 
  2068.         set dbid = next_database( dbid ); 
  2069.     end if; 
  2070.     end loop dbloop; 
  2071.     select * from t_db_properties; 
  2072. end
  2073. go
  2074. CREATE procedure dbo.sa_conn_properties( IN connidparm int default NULL ) 
  2075.     result ( 
  2076.         Number             int,  
  2077.     PropNum            int, 
  2078.     PropName       varchar(255), 
  2079.         PropDescription    varchar(255),  
  2080.         Value              varchar(255) 
  2081.     )  
  2082. begin 
  2083.     declare connid         int; 
  2084.     declare i           int; 
  2085.     declare local temporary table t_conn_properties(  
  2086.         Number             int        null,  
  2087.     PropNum            int        null, 
  2088.     PropName       varchar(255) null, 
  2089.         PropDescription    varchar(255) null,  
  2090.         Value              varchar(255) null
  2091.     ) in SYSTEM on commit preserve rows; 
  2092.     if( connidparm is not NULL ) then 
  2093.         set connid = connidparm; 
  2094.     else 
  2095.     set connid = next_connection( NULL ); 
  2096.     end if; 
  2097.     connloop: 
  2098.     loop 
  2099.         if connid is NULL then 
  2100.             leave connloop; 
  2101.         end if; 
  2102.     set i = 0; 
  2103.     proploop: 
  2104.     loop 
  2105.         if( connection_property( i, connid ) is not NULL ) then 
  2106.         insert into t_conn_properties values ( 
  2107.             connid,  
  2108.             i, 
  2109.             property_name( i ), 
  2110.             property_description( i ), 
  2111.             connection_property( i, connid ) 
  2112.         ); 
  2113.         else 
  2114.             if( i >   200   ) then 
  2115.             leave proploop; 
  2116.         end if; 
  2117.         end if; 
  2118.         set i = i + 1; 
  2119.     end loop proploop; 
  2120.     if( connidparm is not NULL ) then 
  2121.         leave connloop; 
  2122.     else 
  2123.         set connid = next_connection( connid ); 
  2124.     end if; 
  2125.     end loop connloop; 
  2126.     select * from t_conn_properties; 
  2127. end
  2128. go
  2129. create procedure dbo.sa_validate( 
  2130.     in tbl_name char(128) default NULL, 
  2131.     in owner_name char(128) default NULL )
  2132. result( Messages char(128) )
  2133. on exception resume
  2134. begin
  2135.     declare tname char(128);
  2136.     declare uname char(128);
  2137.     declare qualified_name char(250);
  2138.     declare counter int;
  2139.     declare errcode int;
  2140.     declare tables cursor for
  2141.     select rtrim(table_name), rtrim(user_name)
  2142.     from SYS.SYSTABLE t, SYS.SYSUSERPERM u
  2143.     where table_type='BASE'
  2144.     and t.creator = u.user_id
  2145.     order by t.creator, table_name;
  2146.     declare first_owner cursor for
  2147.     select user_name 
  2148.     from SYS.SYSTABLE t, SYS.SYSUSERPERM u
  2149.     where table_name=tbl_name
  2150.     and t.creator = u.user_id;
  2151.     declare local temporary table result_msgs( 
  2152.     rownum integer,
  2153.     msg char(250) ) in SYSTEM;
  2154.     
  2155.     
  2156.     
  2157.     
  2158.     set counter = 0;
  2159.   
  2160.     if tbl_name is null then
  2161.     open tables;
  2162.     tabs: loop
  2163.         fetch tables into tname, uname;
  2164.         if SQLCODE <> 0 then leave tabs end if;
  2165.         
  2166.         set qualified_name = '"' || uname || '"."' || tname || '"';
  2167.         execute immediate with quotes 'validate table ' || qualified_name;
  2168.         set errcode = SQLCODE;
  2169.         if errcode <> 0 then
  2170.         set counter = counter + 1;
  2171.         insert into result_msgs values ( counter, 
  2172.             'Error ' || errcode || ' detected in table ' || qualified_name );
  2173.         end if;
  2174.     end loop;
  2175.     close tables;
  2176.     else
  2177.     set tname = rtrim(tbl_name);
  2178.     if owner_name is null then
  2179.         set uname = '';
  2180.         open first_owner;
  2181.         fetch first_owner into uname;
  2182.         if SQLCODE = 0 then
  2183.         set uname = '"' || rtrim(uname) || '".';
  2184.         end if;
  2185.         close first_owner;
  2186.     else
  2187.         set uname = '"' || rtrim(owner_name) || '".';
  2188.     end if;
  2189.     set qualified_name = uname || '"' || tname || '"';
  2190.     execute immediate with quotes 'validate table ' || qualified_name;
  2191.     set errcode = SQLCODE;
  2192.     if errcode <> 0 then
  2193.         set counter = counter + 1;
  2194.         if errcode = -141 then   
  2195.         insert into result_msgs values ( counter,
  2196.             'Table ' || qualified_name || ' not found' );
  2197.         else 
  2198.         insert into result_msgs values ( counter, 
  2199.             'Error ' || errcode || ' detected in table ' || qualified_name );
  2200.         end if;
  2201.     end if;
  2202.     end if;
  2203.     
  2204.     if counter = 0 then
  2205.     insert into result_msgs values ( 1, 'No errors detected' );
  2206.     end if;
  2207.     
  2208.     select msg from result_msgs order by rownum;
  2209. end
  2210. go
  2211. create procedure dbo.sa_internal_table_page_usage()
  2212.     internal name 'table_page_usage'
  2213. go
  2214. create procedure dbo.sa_table_page_usage()
  2215. result(
  2216.     TableId    integer,
  2217.     TablePages    integer,
  2218.     PctUsedT    integer,
  2219.     IndexPages    integer,
  2220.     PctUsedI    integer,
  2221.     PctOfFile    integer,
  2222.     TableName    char(128))
  2223. begin
  2224.     declare local temporary table PageUse(
  2225.     TableId        integer null,
  2226.     TablePages    integer null,
  2227.     PctUsedT    integer null,
  2228.     IndexPages    integer null,
  2229.     PctUsedI    integer null,
  2230.     PctOfFile    integer null,
  2231.     TableName    char(128) null ) in SYSTEM;
  2232.    
  2233.     call dbo.sa_internal_table_page_usage();
  2234.     
  2235.     select * from PageUse order by TableID;
  2236. end
  2237. go
  2238. create procedure SYS.sa_setremoteuser(
  2239.     p_user_id         smallint ,
  2240.     p_log_sent        numeric(20,0),
  2241.     p_confirm_sent    numeric(20,0),
  2242.     p_send_count    integer,
  2243.     p_resend_count    integer,
  2244.     p_log_received    numeric(20,0),
  2245.     p_confirm_received    numeric(20,0),
  2246.     p_receive_count    integer,
  2247.     p_rereceive_count    integer )
  2248. begin
  2249.     update SYS.SYSREMOTEUSER
  2250.        set  log_sent        = p_log_sent,
  2251.         confirm_sent    = p_confirm_sent,
  2252.         send_count        = p_send_count,
  2253.         resend_count    = p_resend_count,
  2254.         log_received    = p_log_received,
  2255.         confirm_received= p_confirm_received,
  2256.         receive_count   = p_receive_count,
  2257.         rereceive_count = p_rereceive_count
  2258.     where user_id = p_user_id;
  2259.     commit;
  2260. end
  2261. go
  2262. create procedure SYS.sa_setsubscription(
  2263.     p_publication_id     smallint ,
  2264.     p_user_id         smallint ,
  2265.     p_subscribe_by    char(128),
  2266.     p_created        numeric(20,0),
  2267.     p_started        numeric(20,0) )
  2268. begin
  2269.     update SYS.SYSSUBSCRIPTION
  2270.        set  created = p_created,
  2271.         started = p_started
  2272.     where publication_id = p_publication_id
  2273.       and user_id = p_user_id
  2274.       and subscribe_by = p_subscribe_by;
  2275.     commit;
  2276. end
  2277. go
  2278. create procedure dbo.java_debug_connect(
  2279.     in user_to_debug char(128) )
  2280.     internal name 'java_debug_connect'
  2281. go
  2282. create procedure dbo.java_debug_disconnect()
  2283.     internal name 'java_debug_disconnect'
  2284. go
  2285. create procedure dbo.java_debug_get_existing_vms(
  2286.     out buffer long binary )
  2287.     internal name 'java_debug_get_existing_vms'
  2288. go
  2289. create procedure dbo.java_debug_free_existing_vms()
  2290.     internal name 'java_debug_free_existing_vms'
  2291. go
  2292. create procedure dbo.java_debug_wait_for_debuggable_vm(
  2293.     out buffer long binary )
  2294.     internal name 'java_debug_wait_for_debuggable_vm'
  2295. go
  2296. create procedure dbo.java_debug_get_vm_name(
  2297.     in vm_handle long binary,
  2298.     out vm_name char(128) )
  2299.     internal name 'java_debug_get_vm_name'
  2300. go
  2301. create procedure dbo.java_debug_release_vm(
  2302.     in vm_handle long binary )
  2303.     internal name 'java_debug_release_vm'
  2304. go
  2305. create procedure dbo.java_debug_attach_to_vm(
  2306.     in vm_name char(128),
  2307.     out debugger long binary )
  2308.     internal name 'java_debug_attach_to_vm'
  2309. go
  2310. create procedure dbo.java_debug_detach_from_vm(
  2311.     in debugger long binary )
  2312.     internal name 'java_debug_detach_from_vm'
  2313. go
  2314. create procedure dbo.java_debug_request(
  2315.     in debugger long binary,
  2316.     in request long binary,
  2317.     out out_request long binary )
  2318.     internal name 'java_debug_request'
  2319. go
  2320. create procedure dbo.sa_flush_cache()
  2321.     internal name 'sa_flush_cache'
  2322. go
  2323. create procedure dbo.sa_server_option(
  2324.     in opt char(128),
  2325.     in val char(128) )
  2326.     internal name 'sa_server_option'
  2327. go
  2328. create procedure dbo.sa_exec_script(
  2329.     in filename char(128) )
  2330.     internal name 'sa_exec_script'
  2331. go
  2332. create procedure dbo.sa_jdk_version()
  2333.     result( "classes_version" char(10) )
  2334.     begin
  2335.         select "classes_version" from SYS.SYSINFO;
  2336.     end
  2337. go
  2338. GRANT EXECUTE On dbo.sp_tsql_feature_not_supported    TO PUBLIC
  2339. go
  2340. GRANT EXECUTE On dbo.sp_checkperms             TO PUBLIC
  2341. go
  2342. GRANT EXECUTE On dbo.sp_addalias             TO PUBLIC
  2343. go
  2344. GRANT EXECUTE On dbo.sp_addauditrecord             TO PUBLIC
  2345. go
  2346. GRANT EXECUTE On dbo.sp_addgroup             TO PUBLIC
  2347. go
  2348. GRANT EXECUTE On dbo.sp_addlanguage             TO PUBLIC
  2349. go
  2350. GRANT EXECUTE On dbo.sp_addlogin             TO PUBLIC
  2351. go
  2352. GRANT EXECUTE On dbo.sp_addmessage             TO PUBLIC
  2353. go
  2354. GRANT EXECUTE On dbo.sp_addremotelogin             TO PUBLIC
  2355. go
  2356. GRANT EXECUTE On dbo.sp_addsegment             TO PUBLIC
  2357. go
  2358. GRANT EXECUTE On dbo.sp_addserver             TO PUBLIC
  2359. go
  2360. GRANT EXECUTE On dbo.sp_addthreshold             TO PUBLIC
  2361. go
  2362. GRANT EXECUTE On dbo.sp_addtype             TO PUBLIC
  2363. go
  2364. GRANT EXECUTE On dbo.sp_adddumpdevice             TO PUBLIC
  2365. go
  2366. GRANT EXECUTE On dbo.sp_adduser             TO PUBLIC
  2367. go
  2368. GRANT EXECUTE On dbo.sp_auditdatabase             TO PUBLIC
  2369. go
  2370. GRANT EXECUTE On dbo.sp_auditlogin             TO PUBLIC
  2371. go
  2372. GRANT EXECUTE On dbo.sp_auditobject            TO PUBLIC
  2373. go
  2374. GRANT EXECUTE On dbo.sp_auditoption            TO PUBLIC
  2375. go
  2376. GRANT EXECUTE On dbo.sp_auditsproc            TO PUBLIC
  2377. go
  2378. GRANT EXECUTE On dbo.sp_bindefault            TO PUBLIC
  2379. go
  2380. GRANT EXECUTE On dbo.sp_bindmsg                TO PUBLIC
  2381. go
  2382. GRANT EXECUTE On dbo.sp_bindrule            TO PUBLIC
  2383. go
  2384. GRANT EXECUTE On dbo.sp_changedbowner            TO PUBLIC
  2385. go
  2386. GRANT EXECUTE On dbo.sp_changegroup            TO PUBLIC
  2387. go
  2388. GRANT EXECUTE On dbo.sp_checknames            TO PUBLIC
  2389. go
  2390. GRANT EXECUTE On dbo.sp_checkreswords            TO PUBLIC
  2391. go
  2392. GRANT EXECUTE On dbo.sp_clearstats            TO PUBLIC
  2393. go
  2394. GRANT EXECUTE On dbo.sp_commonkey            TO PUBLIC
  2395. go
  2396. GRANT EXECUTE On dbo.sp_configure            TO PUBLIC
  2397. go
  2398. GRANT EXECUTE On dbo.sp_cursorinfo            TO PUBLIC
  2399. go
  2400. GRANT EXECUTE On dbo.sp_dboption            TO PUBLIC
  2401. go
  2402. GRANT EXECUTE On dbo.sp_dbremap                TO PUBLIC
  2403. go
  2404. GRANT EXECUTE On dbo.sp_depends                TO PUBLIC
  2405. go
  2406. GRANT EXECUTE On dbo.sp_diskdefault            TO PUBLIC
  2407. go
  2408. GRANT EXECUTE On dbo.sp_displaylogin            TO PUBLIC
  2409. go
  2410. GRANT EXECUTE On dbo.sp_dropalias            TO PUBLIC
  2411. go
  2412. GRANT EXECUTE On dbo.sp_dropdevice            TO PUBLIC
  2413. go
  2414. GRANT EXECUTE On dbo.sp_dropgroup            TO PUBLIC
  2415. go
  2416. GRANT EXECUTE On dbo.sp_dropkey                TO PUBLIC
  2417. go
  2418. GRANT EXECUTE On dbo.sp_droplanguage            TO PUBLIC
  2419. go
  2420. GRANT EXECUTE On dbo.sp_droplogin            TO PUBLIC
  2421. go
  2422. GRANT EXECUTE On dbo.sp_dropmessage            TO PUBLIC
  2423. go
  2424. GRANT EXECUTE On dbo.sp_dropremotelogin            TO PUBLIC
  2425. go
  2426. GRANT EXECUTE On dbo.sp_dropsegment            TO PUBLIC
  2427. go
  2428. GRANT EXECUTE On dbo.sp_dropserver            TO PUBLIC
  2429. go
  2430. GRANT EXECUTE On dbo.sp_dropthreshold            TO PUBLIC
  2431. go
  2432. GRANT EXECUTE On dbo.sp_droptype            TO PUBLIC
  2433. go
  2434. GRANT EXECUTE On dbo.sp_dropuser            TO PUBLIC
  2435. go
  2436. GRANT EXECUTE On dbo.sp_estspace            TO PUBLIC
  2437. go
  2438. GRANT EXECUTE On dbo.sp_extendsegment            TO PUBLIC
  2439. go
  2440. GRANT EXECUTE On dbo.sp_foreignkey            TO PUBLIC
  2441. go
  2442. GRANT EXECUTE On dbo.sp_getmessage            TO PUBLIC
  2443. go
  2444. GRANT EXECUTE On dbo.sp_help                TO PUBLIC
  2445. go
  2446. GRANT EXECUTE On dbo.sp_helpconstraint            TO PUBLIC
  2447. go
  2448. GRANT EXECUTE On dbo.sp_helpdb                TO PUBLIC
  2449. go
  2450. GRANT EXECUTE On dbo.sp_helpdevice            TO PUBLIC
  2451. go
  2452. GRANT EXECUTE On dbo.sp_helpgroup            TO PUBLIC
  2453. go
  2454. GRANT EXECUTE On dbo.sp_helpindex            TO PUBLIC
  2455. go
  2456. GRANT EXECUTE On dbo.sp_helpjoins            TO PUBLIC
  2457. go
  2458. GRANT EXECUTE On dbo.sp_helpkey                TO PUBLIC
  2459. go
  2460. GRANT EXECUTE On dbo.sp_helplanguage            TO PUBLIC
  2461. go
  2462. GRANT EXECUTE On dbo.sp_helplog                TO PUBLIC
  2463. go
  2464. GRANT EXECUTE On dbo.sp_helpremotelogin            TO PUBLIC
  2465. go
  2466. GRANT EXECUTE On dbo.sp_helpprotect            TO PUBLIC
  2467. go
  2468. GRANT EXECUTE On dbo.sp_helpsegment            TO PUBLIC
  2469. go
  2470. GRANT EXECUTE On dbo.sp_helpserver            TO PUBLIC
  2471. go
  2472. GRANT EXECUTE On dbo.sp_helpsort            TO PUBLIC
  2473. go
  2474. GRANT EXECUTE On dbo.sp_helptext            TO PUBLIC
  2475. go
  2476. GRANT EXECUTE On dbo.sp_helpthreshold            TO PUBLIC
  2477. go
  2478. GRANT EXECUTE On dbo.sp_helpuser            TO PUBLIC
  2479. go
  2480. GRANT EXECUTE On dbo.sp_indsuspect            TO PUBLIC
  2481. go
  2482. GRANT EXECUTE On dbo.sp_lock                TO PUBLIC
  2483. go
  2484. GRANT EXECUTE On dbo.sp_locklogin            TO PUBLIC
  2485. go
  2486. GRANT EXECUTE On dbo.sp_logdevice            TO PUBLIC
  2487. go
  2488. GRANT EXECUTE On dbo.sp_modifylogin            TO PUBLIC
  2489. go
  2490. GRANT EXECUTE On dbo.sp_modifythreshold            TO PUBLIC
  2491. go
  2492. GRANT EXECUTE On dbo.sp_monitor                TO PUBLIC
  2493. go
  2494. GRANT EXECUTE On dbo.sp_password            TO PUBLIC
  2495. go
  2496. GRANT EXECUTE On dbo.sp_placeobject            TO PUBLIC
  2497. go
  2498. GRANT EXECUTE On dbo.sp_primarykey            TO PUBLIC
  2499. go
  2500. GRANT EXECUTE On dbo.sp_procxmode            TO PUBLIC
  2501. go
  2502. GRANT EXECUTE On dbo.sp_recompile            TO PUBLIC
  2503. go
  2504. GRANT EXECUTE On dbo.sp_remap                TO PUBLIC
  2505. go
  2506. GRANT EXECUTE On dbo.sp_remoteoption            TO PUBLIC
  2507. go
  2508. GRANT EXECUTE On dbo.sp_rename                TO PUBLIC
  2509. go
  2510. GRANT EXECUTE On dbo.sp_renamedb            TO PUBLIC
  2511. go
  2512. GRANT EXECUTE On dbo.sp_reportstats            TO PUBLIC
  2513. go
  2514. GRANT EXECUTE On dbo.sp_role                TO PUBLIC
  2515. go
  2516. GRANT EXECUTE On dbo.sp_serveroption            TO PUBLIC
  2517. go
  2518. GRANT EXECUTE On dbo.sp_setlangalias            TO PUBLIC
  2519. go
  2520. GRANT EXECUTE On dbo.sp_spaceused            TO PUBLIC
  2521. go
  2522. GRANT EXECUTE On dbo.sp_syntax                TO PUBLIC
  2523. go
  2524. GRANT EXECUTE On dbo.sp_unbindefault            TO PUBLIC
  2525. go
  2526. GRANT EXECUTE On dbo.sp_unbindmsg            TO PUBLIC
  2527. go
  2528. GRANT EXECUTE On dbo.sp_unbindrule            TO PUBLIC
  2529. go
  2530. GRANT EXECUTE On dbo.sp_volchanged            TO PUBLIC
  2531. go
  2532. GRANT EXECUTE On dbo.sp_who                TO PUBLIC
  2533. go
  2534. GRANT EXECUTE On dbo.sp_column_privileges        TO PUBLIC
  2535. go
  2536. GRANT EXECUTE On dbo.sp_columns                TO PUBLIC
  2537. go
  2538. GRANT EXECUTE On dbo.sp_databases            TO PUBLIC
  2539. go
  2540. GRANT EXECUTE On dbo.sp_datatype_info            TO PUBLIC
  2541. go
  2542. GRANT EXECUTE On dbo.sp_fkeys                TO PUBLIC
  2543. go
  2544. GRANT EXECUTE On dbo.sp_pkeys                TO PUBLIC
  2545. go
  2546. GRANT EXECUTE On dbo.sp_serverinfo            TO PUBLIC
  2547. go
  2548. GRANT EXECUTE On dbo.sp_server_info            TO PUBLIC
  2549. go
  2550. GRANT EXECUTE On dbo.sp_special_columns            TO PUBLIC
  2551. go
  2552. GRANT EXECUTE On dbo.sp_sproc_columns            TO PUBLIC
  2553. go
  2554. GRANT EXECUTE On dbo.sp_statistics            TO PUBLIC
  2555. go
  2556. GRANT EXECUTE On dbo.sp_stored_procedures        TO PUBLIC
  2557. go
  2558. GRANT EXECUTE On dbo.sp_table_privileges        TO PUBLIC
  2559. go
  2560. GRANT EXECUTE On dbo.sp_tables                TO PUBLIC
  2561. go
  2562. GRANT EXECUTE On dbo.sp_tsql_environment        TO PUBLIC
  2563. go
  2564. GRANT EXECUTE On dbo.sp_login_environment        TO PUBLIC
  2565. go
  2566. GRANT EXECUTE On dbo.xp_sprintf                TO PUBLIC
  2567. go
  2568. GRANT EXECUTE On dbo.xp_scanf                TO PUBLIC
  2569. go
  2570. GRANT EXECUTE On dbo.sa_db_info                TO PUBLIC
  2571. go
  2572. GRANT EXECUTE On dbo.sa_conn_info            TO PUBLIC
  2573. go
  2574. GRANT EXECUTE On dbo.sa_eng_properties            TO PUBLIC
  2575. go
  2576. GRANT EXECUTE On dbo.sa_db_properties            TO PUBLIC
  2577. go
  2578. GRANT EXECUTE On dbo.sa_conn_properties            TO PUBLIC
  2579. go
  2580. grant EXECUTE on dbo.sa_validate            to DBA
  2581. go
  2582. grant EXECUTE on dbo.sa_table_page_usage        to DBA
  2583. go
  2584. grant EXECUTE on dbo.java_debug_connect            to PUBLIC
  2585. go
  2586. grant EXECUTE on dbo.java_debug_disconnect        to PUBLIC
  2587. go
  2588. grant EXECUTE on dbo.java_debug_get_existing_vms    to PUBLIC
  2589. go
  2590. grant EXECUTE on dbo.java_debug_free_existing_vms    to PUBLIC
  2591. go
  2592. grant EXECUTE on dbo.java_debug_wait_for_debuggable_vm    to PUBLIC
  2593. go
  2594. grant EXECUTE on dbo.java_debug_get_vm_name        to PUBLIC
  2595. go
  2596. grant EXECUTE on dbo.java_debug_release_vm        to PUBLIC
  2597. go
  2598. grant EXECUTE on dbo.java_debug_attach_to_vm        to PUBLIC
  2599. go
  2600. grant EXECUTE on dbo.java_debug_detach_from_vm        to PUBLIC
  2601. go
  2602. grant EXECUTE on dbo.java_debug_request            to PUBLIC
  2603. go
  2604. grant EXECUTE on dbo.sa_flush_cache            to DBA
  2605. go
  2606. grant EXECUTE on dbo.sa_server_option            to DBA
  2607. go
  2608. grant EXECUTE on dbo.sa_jdk_version            to DBA
  2609. go
  2610. create procedure rs_systabgroup.rs_get_lastcommit
  2611.     as select origin, origin_qid, secondary_qid
  2612.     from rs_systabgroup.rs_lastcommit
  2613. go
  2614. create procedure rs_systabgroup.rs_update_lastcommit
  2615.     @origin         int,
  2616.     @origin_qid     binary(36),
  2617.     @secondary_qid  binary(36),
  2618.     @origin_time    datetime
  2619. as
  2620.     update rs_systabgroup.rs_lastcommit
  2621.         set origin_qid = @origin_qid,
  2622.         secondary_qid = @secondary_qid,
  2623.         origin_time = @origin_time,
  2624.         commit_time = getdate()
  2625.     where origin = @origin
  2626.     if (@@rowcount = 0)
  2627.     begin
  2628.         insert rs_systabgroup.rs_lastcommit (origin, origin_qid, secondary_qid, 
  2629.             origin_time, commit_time)
  2630.         values (@origin, @origin_qid, @secondary_qid, 
  2631.             @origin_time, getdate())
  2632.     end
  2633. go
  2634. create procedure rs_systabgroup.rs_marker
  2635.     (@rs_api varchar(255))
  2636. begin
  2637.     set @rs_api = @rs_api
  2638. end 
  2639. go
  2640. alter procedure rs_systabgroup.rs_marker replicate on
  2641. go
  2642.     
  2643. create procedure rs_systabgroup.rs_initialize_threads @rs_id int
  2644. as
  2645.     delete from rs_systabgroup.rs_threads where id = @rs_id
  2646.     insert into rs_systabgroup.rs_threads values ( @rs_id, 0 )
  2647. go
  2648. create procedure rs_systabgroup.rs_update_threads @rs_id int, @rs_seq int
  2649. as
  2650.     update rs_systabgroup.rs_threads set seq = @rs_seq where id = @rs_id
  2651. go
  2652.