snippetsqlMinor
how to find the database context of the last sql statement?
Viewed 0 times
lastthehowstatementsqldatabasefindcontext
Problem
I would like to find out from the code below,
what was the name of the database where the last command was run.
In this case I am looking for
his there any way of finding this?
Is there any DMV that I should be looking at for this info?
Also, what if the update was wrapped in a dynamic sql, would it be possible to track it then?
what am I trying to accomplish?
something like on the example below
at the end I print out the name of the server and the name of the database that I am on:
but on the example below, although I was technically inside database
is there a way to print out
```
SET NOCOUNT OFF
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRAN T1
PRINT ''
PRINT 'AFTER BEGIN TRAN'
PRINT ''
PRINT '@@TRANCOUNT: ' + CAST(@@TRANCOUNT AS VARCHAR)
PRINT '@@SERVERNAME: ' + CAST(@@SERVERNAME AS VARCHAR) + CHAR(10) + 'Databasename: ' + DB_NAME()
PRINT ''
DECLARE @row INT
USE COLA
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
update t
set documentstateid = 5
from apcore.upl.applicationDocument t
where applicationid in (
319761
,320455
,333433
,351642
,371539
,372508
)
and documentStateId not in (1,5)
SELECT @row = @@ROWCOUNT
PRINT ''
PRINT 'AFTER RUNNING THE UPDATE(s)'
PRINT ''
PRINT 'The number of rows updated:' + SPACE(1) + CAST(@row as varchar)
PRINT '@@TRANCOUNT: ' + CAST(@@TRANC
what was the name of the database where the last command was run.
In this case I am looking for
my_other_database.his there any way of finding this?
Is there any DMV that I should be looking at for this info?
Also, what if the update was wrapped in a dynamic sql, would it be possible to track it then?
use my_database
go
begin tran t1
UPDATE my_other_database.REF.applicationReference
SET uploadPaperReferences = 0
WHERE REFERENCEID IN (
69361,
69690,
69354,
69358,
69362,
69732,
69863,
70187
)
commit tran t1what am I trying to accomplish?
something like on the example below
at the end I print out the name of the server and the name of the database that I am on:
but on the example below, although I was technically inside database
cola, the statement was apcore.upl.applicationDocument, apcore is another database.is there a way to print out
apcore, instead of cola?```
SET NOCOUNT OFF
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRAN T1
PRINT ''
PRINT 'AFTER BEGIN TRAN'
PRINT ''
PRINT '@@TRANCOUNT: ' + CAST(@@TRANCOUNT AS VARCHAR)
PRINT '@@SERVERNAME: ' + CAST(@@SERVERNAME AS VARCHAR) + CHAR(10) + 'Databasename: ' + DB_NAME()
PRINT ''
DECLARE @row INT
USE COLA
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
update t
set documentstateid = 5
from apcore.upl.applicationDocument t
where applicationid in (
319761
,320455
,333433
,351642
,371539
,372508
)
and documentStateId not in (1,5)
SELECT @row = @@ROWCOUNT
PRINT ''
PRINT 'AFTER RUNNING THE UPDATE(s)'
PRINT ''
PRINT 'The number of rows updated:' + SPACE(1) + CAST(@row as varchar)
PRINT '@@TRANCOUNT: ' + CAST(@@TRANC
Solution
The context of this script is
What are you trying to accomplish?
my_database. It's just that the query references objects in a different database. Consider a scenario where a single query uses objects in multiple databases. Which database would you want returned?What are you trying to accomplish?
Context
StackExchange Database Administrators Q#202509, answer score: 2
Revisions (0)
No revisions yet.