Skip to main content

TSQL queries-Look into SQL Server Db!!! sysobjects,syscomments,information_schema,sysjobs,sysjobsteps

When I need to change anything in my database or I need to analyze something in it I generally try to play safe and I hope we all try to do so :) !!!
I mean, I research on the flow and dependencies and then will jump on any conclusion/solution. Here I just want to share few T-SQL queries which I use for this purpose. These queries also helps in regression.


First
Query to find presence of particular text in any SQL object. Text can be a table name (in order to find out where all this table is getting used), it can be a procedure or view's name. SQL objects can be procedures, views etc..
SELECT NAME
FROM SYSOBJECTS
WHERE ID IN
(
SELECT ID
FROM SYSCOMMENTS
WHERE TEXT LIKE
'%TEXT GOES HERE%'
)
Second
Query to find out the dependencies between SQL objects. e.g Table A is getting used in View B. Then the below mentioned query will give you Table A's name as output as View B has dependecy on Table A.
Note: if View B is further used in View C and we use View C in below mentioned query we will get only View B as output. Thus, we can conclude that the query will not list indirect dependency.

You can use this queries as a sub-query and tweak the logic if you want to find out indirect dependencies.
SELECT NAME
FROM SYSOBJECTS
WHERE ID IN
(
SELECT
SD.DEPID FROM
SYSOBJECTS SO,
SYSDEPENDS SD
WHERE SO.NAME =
'OBJECT NAME'
AND SD.ID = SO.ID
)
Third
Query to find out Table/View structure. This will give the information regarding the column name, datatype, ordinal position etc.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME =
'TABLE/VIEW NAME HERE'
Fourth
This query provides detail information about the sql job. It gives step name, command type, database, command etc..

You can use this queries as a sub-query and tweak the logic if you want to do more with job information. Use MSDB database to run this query.
select
step_id,
step_name,
subsystem,
case on_success_action
when 3 then 'Goto next step '
when 1 then 'Quit with Success'
when 2 then 'Quit with Failure'
when 4 then 'Goto step '

end +

case convert(varchar(1),on_success_step_id)
when 0 then ''
else convert(varchar(1),on_success_step_id)
end as on_success,

case on_fail_action
when 3 then 'Goto next step '
when 1 then 'Quit with Success'
when 2 then 'Quit with Failure'
when 4 then 'Goto step '
end + convert(varchar(3),
case convert(varchar(1),on_fail_step_id)
when 0 then ''
else convert(varchar(1),on_fail_step_id)
end) as on_failure,

isnull(database_name,''),
command
from sysjobsteps sjs
inner join sysjobs sj
on sj.job_id = sjs.job_id
where sj.name =
'JOB NAME GOES HERE'


Hope this will help!!!

Comments

Popular posts from this blog

Laravel XAMPP MySQL artisan migrate install error mysql.sock

In my previous post I wrote about setting up Laravel 4 on Mac with XAMPP . When I tried to use migrations (using artisan) I faced some issue. I will also post about Laravel migrations soon.    php artisan migrate:install Error :                                                     [PDOException]                                       SQLSTATE[HY000] [2002] No such file or directory                                              Solution : We need to tell artisan which mysql we want it to use. For this to work we need to porivde it with mysql.sock which we want it to use. So change your database settings like this: 'mysql' => array( 'driver'    => 'mysql', 'host'      => 'localhost',     'unix_socket' => '/Applications/xampp/xamppfiles/var/mysql/mysql.sock', 'database'  => 'wedding', 'username'  => 'root', 'password'  => '', '

Add (Drop) a new article (table) at publisher in merge replication

Let us add the article using the GUI first. First of all create the table on publisher database. Now right click on the publisher and select properties from the menu. Click on articles. Uncheck the - "Show only checked articles in the list" checkbox, in order to see the newly added table. Select the table as shown in the figure below. Press ok The article has now been added to the publisher We now need to recreate the snapshot Right click the publication and select – “View snapshot agent status”. Click start to regenerate snapshot. Now right click on the subscription (I have both on same server you may have on different servers) and select “View synchronization status” Click on start on the agent. The schema changes will propagate to the client if you have "Replicate schema changes" property set to true in the publisher.

Check SQL Server Job status (State) using sp_help_job and xp_sqlagent_enum_jobs

This article is about checking the status of a SQL job. In our work place we have lot of SQL jobs. These jobs will run whole day and are business critical. They will load the data and generate extracts which will be used by business people. Thus, it becomes quite essential to support the system efficiently so that the job finishes in time and as desired. Also, while designing a new system sometimes we need to check the dependency of one job over another. In such scenario we need to check whether a particular job has finished or not. All this can be achieved in SQL Server by using the procedures:- sp_help_job xp_sqlagent_enum_jobs Note: xp_sqlagent_enum_jobs is an undocumented proc inside of sp_help_job and is used extensively to get SQL agent job information. sp_help_job: This procedure gives some insight into the status, and information, about a job. This stored procedure provides information such as last start time, job status etc. Syntax sp_help_job { [ @job_id= ] jo