Jeg vil søge efter en streng i navnene på de kolonner, der findes i en database.

Jeg arbejder på et vedligeholdelsesprojekt, og nogle af de databaser, jeg beskæftiger mig med, har mere end 150 tabeller, så jeg leder efter en hurtig måde at gøre dette på.

Hvad kan du anbefale det?

Kommentarer

Svar

Du kan bruge følgende forespørgsel til at liste alle kolonner eller søgekolonner på tværs af tabeller i en database.

USE AdventureWorks GO SELECT t.name AS table_name, SCHEMA_NAME(schema_id) AS schema_name, c.name AS column_name FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID WHERE c.name LIKE "%EmployeeID%" ORDER BY schema_name, table_name; 

Du kan bruge information_schema visninger til at liste alle objekter i SQL Server 2005 eller 2008 databaser.

SELECT * FROM information_schema.tables SELECT * FROM information_schema.columns 

http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/

Svar

Der er også SQL-søgning – et gratis værktøj, der integreres med SQL Server Management Studio.

alt-tekst

Kommentarer

  • SQL-søgning er et godt værktøj, men husk at resultatvinduet er vilkårligt begrænset til, tror jeg, 250 resultater. Sidste gang jeg brugte dette værktøj, havde Red Gate ikke en måde at løfte denne begrænsning på. Når det er sagt, er det stadig et meget nyttigt værktøj, og jeg vil anbefale det til enhver SQL Server DBA eller udvikler. Prisen er også rigtig!

Svar

Sent, men forhåbentlig nyttigt, da begge værktøjer er gratis.

ApexSQL-søgning – god ting ved dette værktøj er, at det også kan søge i data, vise afhængigheder mellem objekter og parre andre nyttige ting.

indtast billedbeskrivelse her

SSMS Toolpack – gratis til alle versioner undtagen SQL 2012. En masse gode muligheder, der ikke kun er relateret til søgning som uddrag, forskellige tilpasninger og mere.

indtast billedbeskrivelse her

Svar

Dette er en, som alle SQL DBA fra gammel tid bruger.

EXEC sp_help "your table name"; 

Hvis det kun er med en enkelt linje, behøver du ikke engang at skrive EXEC. Bare gør

sp_help "your table name" 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *