Link to home
Start Free TrialLog in
Avatar of bravi
bravi

asked on

How to get list of all view created by a user

How can I get a list of all the views created by a particular in SQL Server. ADOX views object doen't work properly with SQL oledb provider. I cannot use SQL-DMO due to licence problem.
How can I get just the names of all view created by user by querying the database
Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

select * from sysobjects
where xtype = 'V'
and uid = (select id from sysusers where <whatever> )

CHeers
select * from sysobjects
where xtype = 'V'
and uid = (select id from sysusers where <whatever> )

CHeers
sorry for the double post...

or

select * from INFORMATION_SCHEMA.views
where TABLE_SCHEMA = 'dbo'

CHeers
Avatar of bravi
bravi

ASKER

I don't need any system views, only user views are required
What about these queries:

select * from sysobjects
where xtype = 'V'
and uid > 1

or

select * from INFORMATION_SCHEMA.views
where TABLE_SCHEMA <> 'dbo'

Cheers
Avatar of bravi

ASKER

I don't need any system views, only user views are required
Avatar of bravi

ASKER

I need all user views created by a paricular user. What if a particular user has dbo privilege? I won't get even the user created views in that case
You are right, there is no indication WHO did actually create the table, only to which user the tables are assigned...
Avatar of bravi

ASKER

I need all user views created by a paricular user. What if a particular user has dbo privilege? I won't get even the user created views in that case
Avatar of bravi

ASKER

There should be some way to filter out this information, enterprise manager displays the type of view also (system or user).
In fact, in the systems table there is a column that indicates if the views are build by the system, but not by which user they are created. Take the following example:

You have USERA and USERB, both with dbo permissions...

USERA connects to the server, and executes the following script:
CREATE VIEW USERB.MyViewA
AS SELECT ...
GO
CREATE VIEW USERA.MyViewB
AS SELECT ...
GO
CREATE VIEW MyViewC
AS SELECT ...

and USERB connects, and executes a similar script:
CREATE VIEW USERB.MyView1
AS SELECT ...
GO
CREATE VIEW USERA.MyView2
AS SELECT ...
GO
CREATE VIEW MyView3
AS SELECT ...


If you look at EM, you will have 6 views:
USERB.MyViewA
USERA.MyViewB
USERA.MyViewC
USERB.MyView1
USERA.MyView2
USERB.MyView3

BUT not all the views that are owned by UserA are actually created by UserA (and vice-versa). All the views have the bit "systemobject" set to false, but there is no indication to which user actually create it...

Cheers


Avatar of bravi

ASKER

Can you tell me where this systemobject flag can be found, even that would be useful to me. Thanks
using the sysobjects, the status column > 0 ...
CHeers
Avatar of bravi

ASKER

Can you tell me where this systemobject flag can be found, even that would be useful to me. Thanks
Avatar of bravi

ASKER

Is it reliable? Books online says its reserved for internal use only. Anyway thanks, I will accept the answer
ASKER CERTIFIED SOLUTION
Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of bravi

ASKER

Is it reliable? Books online says its reserved for internal use only. Anyway thanks, I will accept the answer