MCPcopy
hub / github.com/drawdb-io/drawdb / jsonToSQLServer

Function jsonToSQLServer

src/utils/exportSQL/generic.js:511–585  ·  view source on GitHub ↗
(obj)

Source from the content-addressed store, hash-verified

509}
510
511export function jsonToSQLServer(obj) {
512 return `${obj.types
513 .map((type) => {
514 return `${
515 type.comment === "" ? "" : `/**\n${type.comment}\n*/\n`
516 }CREATE TYPE [${type.name}] FROM ${
517 type.fields.length < 0
518 ? ""
519 : `${getTypeString(type.fields[0], obj.database, DB.MSSQL, true)}`
520 };\nGO\n`;
521 })
522 .join("\n")}\n${obj.tables
523 .map(
524 (table) =>
525 `${
526 table.comment === "" ? "" : `/**\n${table.comment}\n*/\n`
527 }CREATE TABLE [${table.name}] (\n${table.fields
528 .map(
529 (field) =>
530 `${field.comment === "" ? "" : `\t-- ${field.comment}\n`}\t[${
531 field.name
532 }] ${getTypeString(field, obj.database, DB.MSSQL)}${
533 field.notNull ? " NOT NULL" : ""
534 }${field.increment ? " IDENTITY" : ""}${
535 field.unique ? " UNIQUE" : ""
536 }${
537 field.default !== ""
538 ? ` DEFAULT ${parseDefault(field, obj.database)}`
539 : ""
540 }${
541 field.check === "" ||
542 !dbToTypes[obj.database][field.type].hasCheck
543 ? ""
544 : ` CHECK(${field.check})`
545 }`,
546 )
547 .join(",\n")}${
548 table.fields.filter((f) => f.primary).length > 0
549 ? `,\n\tPRIMARY KEY(${table.fields
550 .filter((f) => f.primary)
551 .map((f) => `[${f.name}]`)
552 .join(", ")})`
553 : ""
554 }${uniqueConstraintClause(table, (s) => `[${s}]`)}\n);\nGO\n${table.indices
555 .map(
556 (i) =>
557 `\nCREATE ${i.unique ? "UNIQUE " : ""}INDEX [${
558 i.name
559 }]\nON [${table.name}] (${i.fields
560 .map((f) => `[${f}]`)
561 .join(", ")});\nGO\n`,
562 )
563 .join("")}`,
564 )
565 .join("\n")}\n${obj.references
566 .map((r) => {
567 const { name: startName, fields: startFields } = obj.tables.find(
568 (t) => t.id === r.startTableId,

Callers 1

ControlPanelFunction · 0.90

Calls 4

parseDefaultFunction · 0.90
uniqueConstraintClauseFunction · 0.90
getFkColumnNamesFunction · 0.90
getTypeStringFunction · 0.85

Tested by

no test coverage detected