Thanks @David Hockenbroch !

An almost ideal pattern to run an SQL query in ObjectScript. 

If you could also share with error handling around?

My typical pattern looks like this one below. Includes try-catch in case when I need to rollback something:

try {

set tStatement = ##class(%SQL.Statement).%New()

set query = "ALTER Table "_table_" ADD PRIMARY KEY ("_column_")"

$$$TOE(st,tStatement.%Prepare(query))

set rset=tStatement.%Execute()

if rset.%SQLCODE < 0 {

write "Error adding primary key: "_rset.%SQLCODE_" "_rset.%Message

set ex=##class(%Exception.SQL).CreateFromSQLCODE(rset.%SQLCODE,rset.%Message)

$$$ThrowStatus(ex.AsStatus())

}

}

catch ex {

set st=ex.AsStatus()

}

BTW, faced the same situation today to have an option of getting full sqlname for a class, and generated a classmethod in VSCode with AI (no my personal touch):

ClassMethod GetSQLTableName(pclass As %String) As %String
{
// returns the SQL table name for a class
set tablename = ##class(%DeepSee.Utils).%GetSQLTableName(pclass)
if tablename="" {
set tablename=$TR($P(pclass,".",1,*-1),".","_")_"."_$p(pclass,".",*)
}
return tablename
}

And its working. Not bad for a bot.

Great app, @Raj Singh ! thanks for the contribution!

Adding two more "cents" for different LOAD DATA usage options:

1. csvgen app, which allows you to create a table and import data automatically as simply as:

do ##class(community.csvgen).Generate("/home/irisowner/dev/data.csv",",","package.class")

It will guess datatypes and use LOAD DATA under the hood.

2. And csvgen-ui - a web UI for csvgen by @Guillaume Rongier 

Also, if you are into embedded Python, take a look at csvgenpy, which uses not LOAD DATA, but sqlalchemy.

I see that coding guidlines for ObjectScript linter should be a document (json? yaml?) you include in your code  repository or reference any file in a github/gitlab and VSCode linter follows it on-the-go.

Or as some ObjectScript.Quality like ruleset, is it possible @Daniel Tamajon ?

Or as a codetidy feature by @Timothy Leavitt, but it's not easy to use.