BruceyBandit
BruceyBandit

Reputation: 4324

Output a database and its string

I get an error where it states invalid column 'DatabaseSQL' when I try to add a database reference into an OUTPUT statement like below:

    OUTPUT  [DatabaseSQL] +'.dbo.Package' 'TableName', 'PackageID', inserted.PackageId, 
    Core.updXMLFragment('StatusID', inserted.StatusID, Deleted.StatusID)
    INTO @OutputList

If I remove the DatabaseSQL and added it as a string like OUTPUT 'Database.dbo.Package..., then it works fine, but I need the statement to actually recognise the database as well as add it as a string, just outputting it as a string alone isn't good enough. Any ideas?

Upvotes: 1

Views: 43

Answers (1)

Lukasz Szozda
Lukasz Szozda

Reputation: 175716

You could use: DB_NAME():

OUTPUT  DB_NAME() + '.dbo.Package', 'TableName', 'PackageID' ...

If you store DB name in variable use:

DECLARE @DatabaseSQL SYSNAME = QUOTENAME('name with space');   
OUTPUT  @DatabaseSQL + '.dbo.Package', 'TableName', 'PackageID' ...

LiveDemo

Upvotes: 1

Related Questions