SQL Server guide

Create multiple issues (bulk from external source)


Creates multiple issues by loading rows from an external source such as Microsoft SQL Server or another ODBC database. Use SOURCE('MSSQL', connectionString, query) (or ODBC / driver connection) so that column aliases in the query match the issue input columns (e.g. ProjectKey, IssueTypeName, Summary, Description).

Standard SQL query example

This is the base query accepted by the connector. To execute it in SQL Server, you have to pass it to the Data Gateway via a Linked Server. See how to accomplish this using the examples below.

INSERT INTO Issues(ProjectKey, IssueTypeName, Summary, Description)
SOURCE('MSSQL' --OR ODBC
, 'Data Source=localhost;Initial Catalog=Northwind;Integrated Security=true'
--For ODBC
--, 'Dsn=MyOdbcDsn' 
--, 'Driver={My ODBC Driver Type}...' 
--Alias must match Supported Input Columns - Use Query Builder to find Input Column Names
,'select top 10 C_ProjKey as ProjectKey, C_Type as IssueTypeName, C_Summary as Summary, C_Desc as Description FROM Orders'

--Static value example
--,'select top 10 ''CS'' as ProjectKey, ''New Feature'' as IssueTypeName, ''Task created - <<FUN_SEQUENCE>>'' Summary, ''A description <<FUN_NOW>>'' Description FROM Orders'
)

Using OPENQUERY in SQL Server

SELECT * FROM OPENQUERY([LS_TO_JIRA_IN_GATEWAY], 'INSERT INTO Issues(ProjectKey, IssueTypeName, Summary, Description)
SOURCE(''MSSQL'' --OR ODBC
, ''Data Source=localhost;Initial Catalog=Northwind;Integrated Security=true''
--For ODBC
--, ''Dsn=MyOdbcDsn'' 
--, ''Driver={My ODBC Driver Type}...'' 
--Alias must match Supported Input Columns - Use Query Builder to find Input Column Names
,''select top 10 C_ProjKey as ProjectKey, C_Type as IssueTypeName, C_Summary as Summary, C_Desc as Description FROM Orders''

--Static value example
--,''select top 10 ''''CS'''' as ProjectKey, ''''New Feature'''' as IssueTypeName, ''''Task created - <<FUN_SEQUENCE>>'''' Summary, ''''A description <<FUN_NOW>>'''' Description FROM Orders''
)')

Using EXEC in SQL Server (handling larger SQL text)

The major drawback of OPENQUERY is its inability to incorporate variables within SQL statements. This often leads to the use of cumbersome dynamic SQL (with numerous ticks and escape characters).

Fortunately, starting with SQL 2005 and onwards, you can utilize the EXEC (your_sql) AT [LS_TO_JIRA_IN_GATEWAY] syntax.

DECLARE @MyQuery NVARCHAR(MAX) = 'INSERT INTO Issues(ProjectKey, IssueTypeName, Summary, Description)
SOURCE(''MSSQL'' --OR ODBC
, ''Data Source=localhost;Initial Catalog=Northwind;Integrated Security=true''
--For ODBC
--, ''Dsn=MyOdbcDsn'' 
--, ''Driver={My ODBC Driver Type}...'' 
--Alias must match Supported Input Columns - Use Query Builder to find Input Column Names
,''select top 10 C_ProjKey as ProjectKey, C_Type as IssueTypeName, C_Summary as Summary, C_Desc as Description FROM Orders''

--Static value example
--,''select top 10 ''''CS'''' as ProjectKey, ''''New Feature'''' as IssueTypeName, ''''Task created - <<FUN_SEQUENCE>>'''' Summary, ''''A description <<FUN_NOW>>'''' Description FROM Orders''
)'
EXEC (@MyQuery) AT [LS_TO_JIRA_IN_GATEWAY]