Database | Proc | Application | Created | Links |
sybsystemprocs | sp_bindrule ![]() | ![]() | 31 Aug 14 | Defects Dependencies |
1 2 /* Sccsid = "%Z% generic/sproc/src/%M% %I% %G%" */ 3 /* 4.8 1.1 06/14/90 sproc/src/bindrule */ 4 5 /* 6 ** Messages for "sp_bindrule" 17350 7 ** 8 ** 17344, "You do not own a column of that name." 9 ** 17346, "You do not own a datatype of that name." 10 ** 17350, "Rule and table or usertype must be in 'current' database." 11 ** 17351, "Usage: bindrule rulename, objectname [, 'futureonly']" 12 ** 17352, "No such rule exists. You must create the rule first." 13 ** 17353, "You can't bind a rule to a text, image, unitext, off-row Java clas, or timestamp datatype column." 14 ** 17354, "Rule bound to table column." 15 ** 17355, "You can't bind a rule to a text, image, unitext, or timestamp datatype." 16 ** 17356, "Rule bound to datatype." 17 ** 17357, "The new rule has been bound to column(s) of the specified user datatype." 18 ** 17358, "You cannot bind a declared constraint. The rule must be created using create rule." 19 ** 17756, "The execution of the stored procedure '%1!' in database 20 ** '%2!' was aborted because there was an error in writing the 21 ** replication log record." 22 ** 17763, "The execution of the stored procedure '%1!' in database '%2!' was aborted because there 23 ** was an error in updating the schemacnt column in sysobjects." 24 ** 18293, "Auditing for '%1!' event has failed due to internal error. Contact a user with System Security Officer (SSO) role." 25 ** 17359, "You cannot bind a rule to a virtual computed column." 26 ** 19359, "You cannot bind a rule to a function-based index key." 27 */ 28 29 30 /* 31 ** IMPORTANT NOTE: 32 ** This stored procedure uses the built-in function object_id() in the 33 ** where clause of a select query. If you intend to change this query 34 ** or use the object_id() or db_id() builtin in this procedure, please read the 35 ** READ.ME file in the $DBMS/generic/sproc directory to ensure that the rules 36 ** pertaining to object-id's and db-id's outlined there, are followed. 37 */ 38 39 create procedure sp_bindrule 40 @rulename varchar(767), /* name of the rule */ 41 @objname varchar(511), /* table or usertype name */ 42 @futureonly varchar(15) = NULL /* column name */ 43 as 44 45 declare @futurevalue varchar(15) /* the value of @futureonly that causes 46 ** the binding to be limited */ 47 declare @status tinyint /* column status */ 48 declare @colid smallint /* column id */ 49 declare @msg varchar(1024) 50 declare @returncode int /* return from ad_hoc_audit builtin */ 51 declare @eventnum int /* event number for bind default auditing */ 52 declare @mod_ok int /* successful bind default auditing */ 53 declare @mod_fail int /* failure bind default auditing */ 54 declare @maxobjlen int /* get the length of sysobject.name from syscolumns */ 55 declare @maxuserlen int /* get the length of sysusers.name from syscolumns */ 56 declare @maxtotlen int /* get the Total length of sysobjects.name + sysusers.name*/ 57 58 select @eventnum = 8 /* event number for bind rule */ 59 select @mod_ok = 1 60 select @mod_fail = 2 61 declare @dbname varchar(255) 62 declare @tmp int 63 declare @rows_selected int 64 65 declare @new_binding int /* 0 - new rule was not bound to columns of 66 ** user's datatype. 67 ** 1 - new rule was bound to columns of the 68 ** user's datatype. 69 */ 70 declare @access_rule int /* 0 - not an access rule. 71 ** 16777216 - is an access rule. This is 72 ** the bit in sysobjects.sysstat2 that 73 ** marks an access_rule. 74 */ 75 declare @dbcc_dbid int /* Database id of updated objects */ 76 declare @obj_id int /* Object id of updated objects */ 77 78 select @new_binding = 0 79 80 if @@trancount = 0 81 begin 82 set chained off 83 end 84 85 set transaction isolation level 1 86 87 set nocount on 88 89 select @futurevalue = "futureonly" /* initialize @futurevalue */ 90 91 /* 92 ** When a default or rule is bound to a user-defined datatype, it is also 93 ** bound, by default, to any columns of the user datatype that are currently 94 ** using the existing default or rule as their default or rule. This default 95 ** action may be overridden by setting @futureonly = @futurevalue when the 96 ** procedure is invoked. In this case existing columns with the user 97 ** datatype won't have their existing default or rule changed. 98 */ 99 100 /* 101 ** Check to see that the object names are local to the current database. 102 */ 103 if (@objname like "%.%.%") 104 or 105 (@rulename like "%.%.%" and 106 substring(@rulename, 1, charindex(".", @rulename) - 1) != db_name()) 107 begin 108 /* 109 ** 17350, "Rule and table or usertype must be in 'current' database." 110 */ 111 raiserror 17350 112 return (1) 113 end 114 115 /* 116 ** Check that the @futureonly argument, if supplied, is correct. 117 */ 118 if (@futureonly is not null) 119 begin 120 if (@futureonly != @futurevalue) 121 begin 122 /* 123 ** 17351, "Usage: bindrule rulename, objectname [, 'futureonly']" 124 */ 125 raiserror 17351 126 return (1) 127 end 128 end 129 130 /* 131 ** Check to see that the rule exists and get it's id. 132 */ 133 if not exists (select id 134 from sysobjects 135 where id = object_id(@rulename) 136 and sysstat & 7 = 7) /* rule object */ 137 138 begin 139 /* 140 ** 17352, "No such rule exists. You must create the rule first." 141 */ 142 raiserror 17352 143 return (1) 144 end 145 146 /* Check for access-rule: status bit 0x01000000 (16777216) is set */ 147 select @access_rule = sysstat2 & 16777216 148 from sysobjects 149 where id = object_id(@rulename) 150 and sysstat & 7 = 7 /* rule object */ 151 152 /* 153 ** Check to see that the rule is not of declared type 154 */ 155 156 if exists (select * from sysprocedures 157 where id = object_id(@rulename) 158 and sequence = 0 159 and status & 4096 = 4096) 160 begin 161 /* 162 ** 17358, "You cannot bind a declared constraint. The rule must be created \ 163 using create rule." 164 */ 165 raiserror 17358 166 return (1) 167 end 168 169 /* 170 ** If @objname is of the form tab.col then we are binding to a column. 171 ** Otherwise its a datatype. In the column case, we need to extract 172 ** and verify the table and column names and make sure the user owns 173 ** the table that is getting the rule bound. 174 */ 175 if @objname like "%.%" 176 begin 177 declare @tabname varchar(255) /* name of table */ 178 declare @colname varchar(255) /* name of column */ 179 select @maxobjlen = length from syscolumns 180 where id = object_id("sysobjects") and name = "name" 181 select @maxuserlen = length from syscolumns 182 where id = object_id("sysusers") and name = "name" 183 select @maxtotlen = (@maxobjlen + @maxuserlen) + 1 184 185 /* 186 ** Get the table name out. 187 */ 188 select @tabname = substring(@objname, 1, charindex(".", @objname) - 1) 189 select @colname = substring(@objname, charindex(".", @objname) + 1, @maxtotlen) 190 191 /* 192 ** If the column type is image, text, unitext, off-row Java class, 193 ** or timestamp, disallow the bind. Rules can't be bound to image, 194 ** text, unitext, off-row Java class, or timestamp columns. 195 ** The qualification to check for types is a little strange because 196 ** text and image are real, basic data types while timestamp is not. 197 ** Timestamp is really a binary. The types are checked in case 198 ** there is a user-defined datatype that is an image or text. 199 ** User-defined datatypes mapping to timestamp are not allowed 200 ** by sp_addtype. 201 */ 202 if exists (select * 203 from sysobjects o, syscolumns c 204 where c.id = object_id(@tabname) 205 and c.name = @colname 206 and c.name = @colname 207 and o.id = object_id(@tabname) 208 and o.sysstat & 7 = 3 209 and (c.type in (35, 34, 174) or c.usertype = 80 210 or (c.type = 36 and c.xstatus & 1 != 1))) 211 begin 212 /* 213 ** 17353, "You can't bind a rule to a text, image, unitext, off-row Java class, or timestamp datatype column." 214 */ 215 raiserror 17353 216 return (1) 217 end 218 219 /* 220 ** Cannot bind a rule to a virtual computed column. 221 */ 222 if exists (select 1 from syscolumns c 223 where c.id = object_id(@tabname) 224 and c.name = @colname 225 and c.status2 & 16 = 16 226 and c.status2 & 32 != 32) 227 begin 228 /* 229 ** 17359, "You cannot bind a rule to a virtual computed column." 230 */ 231 raiserror 17359 232 return (1) 233 end 234 235 /* 236 ** Cannot bind a rule to a function-based index key 237 */ 238 if exists (select 1 from syscolumns c 239 where c.id = object_id(@tabname) 240 and c.name = @colname 241 and c.status3 & 1 = 1) 242 begin 243 /* 244 ** 19359, "You cannot bind a rule to a function-based index key." 245 */ 246 raiserror 19359 247 return (1) 248 end 249 250 /* 251 ** If status of the column does not reflect having more than one 252 ** check constraint (declared rule), then update the status if 253 ** it has additional constraint(s). 254 */ 255 256 select @status = status, @colid = colid from syscolumns, sysobjects 257 where syscolumns.id = object_id(@tabname) 258 and syscolumns.name = @colname 259 and sysobjects.id = object_id(@tabname) 260 and uid = user_id() 261 and sysobjects.sysstat & 7 = 3 /* user table */ 262 263 /* 264 ** Did the bind happen? 265 */ 266 if @@rowcount != 1 267 begin 268 /* 269 ** 17344, "You do not own a column of that name." 270 */ 271 /* Audit the failure to bind a rule */ 272 select @returncode = 273 ad_hoc_audit(@eventnum, @mod_fail, @rulename, db_name(), 274 @tabname, user_name(), 0, object_id(@tabname) 275 ) 276 raiserror 17344 277 return (1) 278 end 279 280 /* get the security label of the object */ 281 282 /* Audit the succesful permission to bind a rule */ 283 select @returncode = 284 ad_hoc_audit(@eventnum, @mod_ok, @rulename, db_name(), 285 @tabname, user_name(), 0, object_id(@tabname) 286 ) 287 if (@returncode != 0) 288 begin 289 /* 290 ** 18293, "Auditing for '%1!' event has failed due to 291 ** internal error. Contact a user with System Security 292 ** Officer (SSO) role." 293 */ 294 raiserror 18293, @eventnum 295 return (1) 296 end 297 298 if (@access_rule > 0) 299 begin 300 update syscolumns 301 set accessrule = object_id(@rulename) 302 from syscolumns, sysobjects 303 where syscolumns.id = object_id(@tabname) 304 and syscolumns.name = @colname 305 and sysobjects.id = object_id(@tabname) 306 and uid = user_id() 307 and sysobjects.sysstat & 7 = 3 /* user table */ 308 end 309 else 310 begin 311 if @status & 16 = 0 and 312 exists (select * from sysconstraints c, sysobjects o 313 where c.tableid = object_id(@tabname) 314 and c.colid = @colid 315 and o.id = c.constrid 316 and o.sysstat & 7 = 7) 317 begin 318 update syscolumns 319 set domain = object_id(@rulename), 320 status = syscolumns.status | 16 321 from syscolumns, sysobjects 322 where syscolumns.id = object_id(@tabname) 323 and syscolumns.name = @colname 324 and sysobjects.id = object_id(@tabname) 325 and uid = user_id() 326 and sysobjects.sysstat & 7 = 3 /* user table */ 327 end 328 else 329 begin 330 update syscolumns 331 set domain = object_id(@rulename) 332 from syscolumns, sysobjects 333 where syscolumns.id = object_id(@tabname) 334 and syscolumns.name = @colname 335 and sysobjects.id = object_id(@tabname) 336 and uid = user_id() 337 and sysobjects.sysstat & 7 = 3 /* user table */ 338 end 339 end 340 /* 341 ** Since binding a rule is a schema change, update schema count 342 ** for the object in the sysobjects table. 343 */ 344 345 /* 346 ** This transaction also writes a log record for replicating the 347 ** invocation of this procedure. If logexec() fails, the transaction 348 ** is aborted. 349 ** 350 ** IMPORTANT: The name rs_logexec is significant and is used by 351 ** Replication Server. 352 */ 353 begin transaction rs_logexec 354 355 if (schema_inc(object_id(@tabname), 0) != 1) 356 begin 357 /* 358 ** 17763, "The execution of the stored procedure '%1!' 359 ** in database '%2!' was aborted because there 360 ** was an error in updating the column 361 ** schemacnt in sysobjects." 362 */ 363 select @dbname = db_name() 364 raiserror 17763, "sp_bindrule", @dbname 365 rollback transaction rs_logexec 366 return (1) 367 end 368 369 update sysobjects 370 set sysstat2 = sysstat2 | @access_rule 371 from sysobjects 372 where id = object_id(@tabname) 373 and uid = user_id() 374 375 /* 376 ** If we bound an access rule to the column, we must make sure 377 ** that the DES is updated in the cache 378 */ 379 if @access_rule > 0 380 begin 381 select @tmp = set_accessrule(object_id(@tabname), 1) 382 if (@tmp = - 1) 383 begin 384 rollback transaction rs_logexec 385 /* FGAC_RESOLVE: Add a message */ 386 return 1 387 end 388 end 389 390 /* 391 ** Write the log record to replicate this invocation 392 ** of the stored procedure. 393 */ 394 if (logexec() != 1) 395 begin 396 /* 397 ** 17756, "The execution of the stored procedure '%1!' 398 ** in database '%2!' was aborted because there 399 ** was an error in writing the replication log 400 ** record." 401 */ 402 select @dbname = db_name() 403 raiserror 17756, "sp_bindrule", @dbname 404 405 rollback transaction rs_logexec 406 return (1) 407 end 408 409 commit transaction 410 411 /* 412 ** 17354, "Rule bound to table column." 413 */ 414 exec sp_getmessage 17354, @msg output 415 print @msg 416 417 end 418 else 419 begin 420 /* 421 ** We're binding to a user type. In this case, the @objname 422 ** is really the name of the user datatype. 423 ** When we bind to a user type, any existing columns get changed 424 ** to the new binding unless their current binding is not equal 425 ** to the current binding for the usertype or if they set the 426 ** @futureonly parameter to @futurevalue. 427 */ 428 declare @oldrule int /* current rule for type */ 429 430 /* 431 ** If the column type is image, text, unitext, or timestamp, 432 ** disallow the bind. 433 ** Rules can't be bound to image, unitext or text columns. 434 */ 435 if exists (select * 436 from systypes 437 where name = @objname 438 and (type in (35, 34, 174) or usertype = 80)) 439 begin 440 /* 441 ** 17355, "You can't bind a rule to a text, unitext, image, or timestamp datatype." 442 */ 443 raiserror 17355 444 return (1) 445 end 446 447 if not exists (select * from systypes 448 where name = @objname 449 and uid = user_id() 450 and usertype > 100) 451 begin 452 /* 453 ** 17346, "You do not own a datatype of that name." 454 */ 455 /* Audit the failure to bind a rule */ 456 select @returncode = 457 ad_hoc_audit(@eventnum, @mod_fail, @rulename, 458 db_name(), @objname, user_name(), 0, 459 object_id(@objname) 460 ) 461 raiserror 17346 462 return (1) 463 end 464 465 466 /* 467 ** Get the current rule for the datatype. 468 */ 469 if (@access_rule = 0) 470 begin 471 select @oldrule = domain 472 from systypes 473 where name = @objname 474 and uid = user_id() 475 and usertype > 100 476 end 477 else 478 begin 479 select @oldrule = accessrule 480 from systypes 481 where name = @objname 482 and uid = user_id() 483 and usertype > 100 484 end 485 486 /* get the security label of the object */ 487 /* Audit the successful permission to bind a rule */ 488 select @returncode = 489 ad_hoc_audit(@eventnum, @mod_ok, @rulename, db_name(), 490 @objname, user_name(), 0, object_id(@objname) 491 ) 492 if (@returncode != 0) 493 begin 494 /* 495 ** 18293, "Auditing for '%1!' event has failed due to 496 ** internal error. Contact a user with System Security 497 ** Officer (SSO) role." 498 */ 499 raiserror 18293, @eventnum 500 return (1) 501 end 502 503 /* 504 ** This transaction also writes a log record for 505 ** replicating the invocation of this procedure. If 506 ** logexec() fails, the transaction is aborted. 507 ** 508 ** IMPORTANT: The name rs_logexec is significant and is 509 ** used by Replication Server. 510 */ 511 begin transaction rs_logexec 512 513 if (@access_rule > 0) 514 begin 515 update systypes 516 set accessrule = object_id(@rulename) 517 from systypes 518 where name = @objname 519 and uid = user_id() 520 and usertype > 100 521 end 522 else 523 begin 524 update systypes 525 set domain = object_id(@rulename) 526 from systypes 527 where name = @objname 528 and uid = user_id() 529 and usertype > 100 530 end 531 532 /* 533 ** 17356, "Rule bound to datatype." 534 */ 535 exec sp_getmessage 17356, @msg output 536 print @msg 537 538 539 /* 540 ** Now see if there are any columns with the usertype that 541 ** need the new binding. 542 */ 543 544 select @rows_selected = 0 545 if isnull(@futureonly, "") != @futurevalue 546 begin 547 select @rows_selected = count(distinct syscolumns.id) 548 from syscolumns, systypes 549 where syscolumns.usertype = systypes.usertype 550 and systypes.name = @objname 551 and systypes.usertype > 100 552 and systypes.uid = user_id() 553 and ((syscolumns.domain = @oldrule 554 or syscolumns.domain = 0) 555 or (syscolumns.accessrule = @oldrule 556 or syscolumns.accessrule is NULL 557 or syscolumns.accessrule = 0)) 558 559 560 if (@rows_selected > 0) 561 begin 562 /* 563 ** Update the table schema to indicate that something 564 ** has changed in the table's schema. 565 */ 566 567 select @tmp = sum(schema_inc(s.id, 0)) 568 from sysobjects s 569 where exists 570 (select 1 571 from syscolumns, systypes 572 where s.id = syscolumns.id 573 and syscolumns.usertype = systypes.usertype 574 and systypes.name = @objname 575 and systypes.usertype > 100 576 and systypes.uid = user_id() 577 and ((syscolumns.domain = @oldrule 578 or syscolumns.domain = 0) 579 or (syscolumns.accessrule = @oldrule 580 or syscolumns.accessrule is NULL 581 or syscolumns.accessrule = 0))) 582 583 584 if (@rows_selected != @tmp) 585 begin 586 /* 587 ** 17763, "The execution of the stored procedure '%1!' 588 ** in database '%2!' was aborted because there 589 ** was an error in updating the column 590 ** schemacnt in sysobjects." 591 */ 592 select @dbname = db_name() 593 raiserror 17763, "sp_bindrule", @dbname 594 rollback transaction rs_logexec 595 return (1) 596 end 597 598 if (@access_rule > 0) 599 begin 600 update sysobjects 601 set sysstat2 = sysstat2 | @access_rule 602 from sysobjects s 603 where exists 604 (select 1 605 from syscolumns, systypes 606 where s.id = syscolumns.id 607 and syscolumns.usertype = systypes.usertype 608 and systypes.name = @objname 609 and systypes.usertype > 100 610 and systypes.uid = user_id() 611 and (syscolumns.accessrule = @oldrule 612 or syscolumns.accessrule = 0 613 or syscolumns.accessrule is NULL)) 614 615 /* 616 ** Update syscolumns with new binding. 617 */ 618 update syscolumns 619 set accessrule = systypes.accessrule 620 from syscolumns, systypes 621 where syscolumns.usertype = systypes.usertype 622 and systypes.name = @objname 623 and systypes.usertype > 100 624 and systypes.uid = user_id() 625 and (syscolumns.accessrule = @oldrule 626 or syscolumns.accessrule = 0 627 or syscolumns.accessrule is NULL) 628 end 629 else 630 begin 631 update sysobjects 632 set sysstat2 = sysstat2 | @access_rule 633 from sysobjects s 634 where exists 635 (select 1 636 from syscolumns, systypes 637 where s.id = syscolumns.id 638 and syscolumns.usertype = systypes.usertype 639 and systypes.name = @objname 640 and systypes.usertype > 100 641 and systypes.uid = user_id() 642 and (syscolumns.domain = @oldrule 643 or syscolumns.domain = 0)) 644 645 /* 646 ** Update syscolumns with new binding. 647 */ 648 update syscolumns 649 set domain = systypes.domain 650 from syscolumns, systypes 651 where syscolumns.usertype = systypes.usertype 652 and systypes.name = @objname 653 and systypes.usertype > 100 654 and systypes.uid = user_id() 655 and (syscolumns.domain = @oldrule 656 or syscolumns.domain = 0) 657 end 658 659 /* 660 ** Note that new binding has occurred. 661 */ 662 select @new_binding = 1 663 664 /* 665 ** If we bound an access rule to a column of one or 666 ** more tables, we must make sure that the DESs for these 667 ** tables flushed from the cache and re-read to pick up 668 ** the new sysstat2 value. 669 */ 670 if @access_rule > 0 671 begin 672 select @dbcc_dbid = db_id() 673 674 declare tab_cursor cursor for 675 select distinct sysobjects.id 676 from sysobjects, syscolumns 677 where sysobjects.id = syscolumns.id 678 and syscolumns.accessrule = object_id(@rulename) 679 680 open tab_cursor 681 682 fetch tab_cursor into @obj_id 683 684 while (@@sqlstatus = 0) 685 begin 686 select @tmp = set_accessrule(@obj_id, 1) 687 /* FGAC RESOLVE -- Add a new messsage */ 688 if (@tmp = - 1) 689 begin 690 rollback transaction rs_logexec 691 close tab_cursor 692 deallocate cursor tab_cursor 693 return (1) 694 end 695 696 fetch tab_cursor into @obj_id 697 end 698 699 close tab_cursor 700 deallocate cursor tab_cursor 701 end 702 end 703 end 704 705 /* 706 ** Write the log record to replicate this invocation 707 ** of the stored procedure. 708 */ 709 if (logexec() != 1) 710 begin 711 /* 712 ** 17756, "The execution of the stored procedure 713 ** '%1!' in database '%2!' was aborted 714 ** because there was an error in writing 715 ** the replication log record." 716 */ 717 select @dbname = db_name() 718 raiserror 17756, "sp_bindrule", @dbname 719 720 rollback transaction rs_logexec 721 return (1) 722 end 723 724 commit transaction 725 726 /* 727 ** If a new binding has occurred, display message 17357. 728 */ 729 if (@new_binding = 1) 730 begin 731 /* 732 ** 17357, "The new rule has been bound to column(s) of the 733 ** specified user datatype." 734 */ 735 exec sp_getmessage 17357, @msg output 736 print @msg 737 end 738 end 739 740 return (0) 741 742
exec sp_procxmode 'sp_bindrule', 'AnyMode' go Grant Execute on sp_bindrule to public go
DEFECTS | |
![]() | 353 |
![]() | 409 |
![]() | 511 |
![]() | 724 |
![]() | 545 |
![]() | 202 |
![]() | 256 |
![]() | 300 |
![]() | 318 |
![]() | 330 |
![]() | 209 |
![]() | 210 |
![]() | 438 |
![]() | 450 |
![]() | 475 |
![]() | 483 |
![]() | 520 |
![]() | 529 |
![]() | 551 |
![]() | 575 |
![]() | 609 |
![]() | 623 |
![]() | 640 |
![]() | 653 |
![]() | 675 |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | 300 |
![]() | 318 |
![]() | 330 |
![]() | 369 |
![]() | 414 |
![]() | 515 |
![]() | 524 |
![]() | 535 |
![]() | 600 |
![]() | 618 |
![]() | 631 |
![]() | 648 |
![]() | 735 |
![]() | 112 |
![]() | 118 |
![]() | 120 |
![]() | 126 |
![]() | 143 |
![]() | 166 |
![]() | 216 |
![]() | 232 |
![]() | 247 |
![]() | 277 |
![]() | 287 |
![]() | 295 |
![]() | 298 |
![]() | 355 |
![]() | 366 |
![]() | 382 |
![]() | 394 |
![]() | 406 |
![]() | 444 |
![]() | 462 |
![]() | 469 |
![]() | 492 |
![]() | 500 |
![]() | 513 |
![]() | 560 |
![]() | 584 |
![]() | 595 |
![]() | 598 |
![]() | 684 |
![]() | 688 |
![]() | 693 |
![]() | 709 |
![]() | 721 |
![]() | 729 |
![]() | 740 |
![]() | 330 |
![]() | 369 |
![]() | 515 |
![]() | 524 |
![]() | 179 |
![]() | 181 |
![]() | 675 |
![]() | 675 |
![]() | 85 |
![]() | 203 |
![]() | 256 |
![]() | 302 |
![]() | 312 |
![]() | 321 |
![]() | 332 |
![]() | 548 |
![]() | 571 |
![]() | 605 |
![]() | 620 |
![]() | 636 |
![]() | 650 |
![]() | 676 |
![]() | 256 |
![]() | 256 |
![]() | 256 |
![]() | 256 |
![]() | 260 |
![]() | 302 |
![]() | 306 |
![]() | 321 |
![]() | 325 |
![]() | 332 |
![]() | 336 |
![]() | 548 |
![]() | 548 |
![]() | 571 |
![]() | 571 |
![]() | 605 |
![]() | 605 |
![]() | 620 |
![]() | 636 |
![]() | 636 |
![]() | 650 |
![]() | 676 |
![]() | 676 |
![]() (id, number, type, sequence) Intersection: {id, sequence} | 157 |
![]() (id, number, colid) Intersection: {id} | 180 |
![]() (id, number, colid) Intersection: {id} | 182 |
![]() (id, number, colid) Intersection: {id} | 204 |
![]() (id, number, colid) Intersection: {id} | 223 |
![]() (id, number, colid) Intersection: {id} | 239 |
![]() (id, number, colid) Intersection: {id} | 257 |
![]() (id, number, colid) Intersection: {id} | 303 |
![]() (id, number, colid) Intersection: {id} | 322 |
![]() (id, number, colid) Intersection: {id} | 333 |
![]() | 206 |
![]() | 313 |
![]() | 314 |
![]() | 672 |
![]() | 675 |
![]() | 133 |
![]() | 156 |
![]() | 202 |
![]() | 222 |
![]() | 238 |
![]() | 312 |
![]() | 435 |
![]() | 447 |
![]() | 570 |
![]() | 604 |
![]() | 635 |
![]() | 39 |
![]() | 39 |
![]() | 39 |
![]() | 312 |
![]() | 547 |
![]() | 570 |
![]() | 604 |
![]() | 618 |
![]() | 635 |
![]() | 648 |
![]() | 675 |
DEPENDENCIES |
PROCS AND TABLES USED reads table sybsystemprocs..sysconstraints ![]() reads table sybsystemprocs..sysprocedures ![]() calls proc sybsystemprocs..sp_getmessage ![]() reads table sybsystemprocs..sysusermessages ![]() reads table master..sysmessages (1) ![]() reads table master..syslanguages (1) ![]() calls proc sybsystemprocs..sp_validlang ![]() reads table master..syslanguages (1) ![]() read_writes table sybsystemprocs..sysobjects ![]() read_writes table sybsystemprocs..systypes ![]() read_writes table sybsystemprocs..syscolumns ![]() |