Avatar billede larsmartin Praktikant
01. april 2015 - 09:56 Der er 1 løsning

Tjek hvis tabel er accessible

Hej,
Jeg er ved at lave et script til at søge efter bestemte kolonner i tabeller, som sådan set virker fint.
Jeg ville sådan set gerne bare loope igennem alle databaser med sys.database men hvis jeg ikke har adgang til en tabel stopper scriptet.
Er der en måde at tjekke om jeg har adgang og så evt indsætte et if statement?

scriptet ser sådan ud indtil nu
Først laver jeg en tabel der kan indeholde søgeresultat...

create table #SearchTable
(
    TABLE_CATALOG varchar(100),
    TABLE_NAME varchar(100),
    COLUMN_NAME varchar(100),
)

Dernæst køres scriptet, hvor jeg altså også har en temptabel med navne på de databaser jeg vil kigge i, men ideelt set ville jeg hellere loope på sys.database

Det er USE [database] der går galt, når jeg ikke har adgang.

declare @value int
set @value =1
DECLARE @Query NVARCHAR(2000), @QueryString NVARCHAR(20), @MyDataBAseName NVARCHAR(100)
SET @QueryString = 'kvh'

while ((select count(*)from #tempDateTable) >= @value)
begin

;With Name_CTE (Name, rowNumber)
as
(select *, row_number() over(order by name desc) rowNumber from #tempDateTable)

Select @MyDataBAseName = Name from Name_CTE where @value= rowNumber
Set @value=@value+1
SET @Query = 'use '+@MyDataBAseName+ '; Insert into #SearchTable
(TABLE_CATALOG, TABLE_NAME, COLUMN_NAME)
SELECT DISTINCT TABLE_CATALOG, TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE column_name LIKE ''%'+@QueryString+'%'' '
EXEC(@Query)

end


Til sidst kan resultatet læses her

select * from #SearchTable
Avatar billede larsmartin Praktikant
09. april 2015 - 09:13 #1
fandt selv en løsning
SELECT name, HAS_DBACCESS(name) FROM sys.databases;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester