ADS 17.0.8
From Issue 14624:
Older versions of sybase ASE limited the amount of columns in a primary and unique constraint to 16. Limit was expanded to 31.
1.Connect to Sybase ASE 16.
2. Use below script to generate tables having primary /unique and foreign key constraints.
CREATE TABLE "dbo"."A" ("a1" int NOT NULL, "a2" int NOT NULL, "a3" int NOT NULL, "a4" int NOT NULL, "a5" int NOT NULL, "a6" int NOT NULL, "a7" int NOT NULL, "a8" int NOT NULL, "a9" int NOT NULL, "a10" int NOT NULL, "a11" int NOT NULL,
"a12" int NOT NULL, "a13" int NOT NULL, "a14" int NOT NULL, "a15" int NOT NULL, "a16" int NOT NULL, "a17" int NOT NULL, "a18" int NOT NULL, "a19" int NOT NULL, "a20" int NOT NULL, "a21" int NOT NULL, "a22" int NOT NULL, "a23" int NOT NULL,
"a24" int NOT NULL, "a25" int NOT NULL, "a26" int NOT NULL, "a27" int NOT NULL, "a28" int NOT NULL, "a29" int NOT NULL, "a30" int NOT NULL, "a31" int NOT NULL, "a32" int NOT NULL, "a33" int NOT NULL,
CONSTRAINT "A_pkey" PRIMARY KEY ("a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","a16","a17","a18","a19"),
CONSTRAINT "A_ukey" UNIQUE ("a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a29","a30","a31"),
CONSTRAINT "A_ckey" CHECK ( "a21" > 0 AND "a22" > 0 AND "a23" > 0 AND "a24" > 0 AND "a25" > 0 AND "a26" > 0 AND "a27" > 0 AND "a28" > 0 AND "a29" > 0 AND "a30" > 0 AND "a31" > 0 AND "a32" > 0 AND "a33" > 0 AND "a14" > 0 AND "a15" > 0 AND "a16" > 0 AND "a17" > 0 AND "a18" > 0 AND "a19" > 0))
GO
CREATE TABLE "dbo"."A1" ("a1" int NOT NULL, "a2" int NOT NULL, "a3" int NOT NULL, "a4" int NOT NULL, "a5" int NOT NULL, "a6" int NOT NULL, "a7" int NOT NULL, "a8" int NOT NULL, "a9" int NOT NULL, "a10" int NOT NULL, "a11" int NOT NULL,
"a12" int NOT NULL, "a13" int NOT NULL, "a14" int NOT NULL, "a15" int NOT NULL, "a16" int NOT NULL, "a17" int NOT NULL, "a18" int NOT NULL, "a19" int NOT NULL, "a20" int NOT NULL, "a21" int NOT NULL, "a22" int NOT NULL, "a23" int NOT NULL,
"a24" int NOT NULL, "a25" int NOT NULL, "a26" int NOT NULL, "a27" int NOT NULL, "a28" int NOT NULL, "a29" int NOT NULL, "a30" int NOT NULL, "a31" int NOT NULL, "a32" int NOT NULL, "a33" int NOT NULL,
CONSTRAINT "A1_pkey" PRIMARY KEY ("a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a29","a30","a31"),
CONSTRAINT "A1_ukey" UNIQUE ("a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22","a23","a24","a25"))
GO
ALTER TABLE "dbo"."A" ADD CONSTRAINT "A_FKEY"
FOREIGN KEY ("a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22","a23","a24","a25")
REFERENCES "dbo"."A1" ("a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22","a23","a24","a25")
GO
3.Tables and constraints generated successfully.
4.In these tables we have more than 16 columns assigned in primary and unique key constraints.
5.If we do Script Object to Window As -> CREATE(full)
6.ADS extracts script of all columns assigned in constriants properly. (in above sript we have 19 columns in primary key)
7. But we checck tree node of Table -> Constriants -> Columns , here only 16 columns are listed.
8. Same thing happening with Unique key constraint.
Expected : In tree node, we should see all columns assigned in constraint key.