Heinzad / data-mache

Data Machination
MIT License
0 stars 0 forks source link

MSSQL Meta Programming Column Definition #13

Open Heinzad opened 1 year ago

Heinzad commented 1 year ago

As a developer, I want to standardise the scripting of table columns, so that I have generic method I can use and reuse.

Given a table name, when I create a table variable, then I should be able to use a pre-defined table type that reflects the information schema columns.

Heinzad commented 1 year ago

feat #13 script: meta.column_schemata.Type.sql

Column Schemata -- Enables quick creation of table variables -- Holds the definitions for a set of columns -- Reflects the structure of information schema columns

Heinzad commented 1 year ago

/* Column Schemata -- Enables quick creation of table variables -- Holds the definitions for a set of columns -- Reflects the structure of information schema columns


-- script_name: meta.column_schemata.Type.sql -- script_author: Adam Heinz -- script_date: 6 Feb 2023 -- script_license: MIT


-- example_usage: --DECLARE @cols [meta].[column_schemata] ; --INSERT INTO @cols ( -- [table_catalog] --,[table_schema] --,[table_name] --,[column_name] --,[ordinal_position] --,[data_type] --,[character_maximum_length] --,[numeric_precision] --,[numeric_scale] --,[datetime_precision] --) --SELECT --[table_catalog] --,[table_schema] --,[table_name] --,[column_name] --,[ordinal_position] --,[data_type] --,[character_maximum_length] --,[numeric_precision] --,[numeric_scale] --,[datetime_precision] --FROM ( --VALUES -- ( -- 'testdb' -- ,'testy' -- ,'testable' -- ,'CHARACTER_DEMO' -- ,1 -- ,'varchar' -- ,50 -- ,NULL -- ,NULL -- ,NULL -- ) -- ,( -- 'testdb' -- ,'testy' -- ,'testable' -- ,'NUMERIC_DEMO' -- ,2 -- ,'decimal' -- ,NULL -- ,8 -- ,0 -- ,NULL -- ) -- ,( -- 'testdb' -- ,'testy' -- ,'testable' -- ,'DATE_DEMO' -- ,3 -- ,'datetime2' -- ,NULL -- ,NULL
-- ,NULL
-- ,7 -- ) --) as v ( --[table_catalog] --,[table_schema] --,[table_name] --,[column_name] --,[ordinal_position] --,[data_type] --,[character_maximum_length] --,[numeric_precision] --,[numeric_scale] --,[datetime_precision] --) ; --SELECT * FROM @cols as cc ;


*/