Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Scan all datatabase
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Autre
Versions des environnements
SQL Server:
SQL Server 2008
Divers
Thread ID:
01565255
Message ID:
01565263
Vues:
35
>>>>>>Hi,
>>>>>>
>>>>>>I would like to write a script to scan all databases in SQL Server and check a certain table(s). Is there a command in TSQL like FOR NEXT that would allow me to USE each database, one at a time?
>>>>>>
>>>>>>TIA.
>>>>>
>>>>>Check sp_MSForEachDB SP.
>>>>>You can ONLY Goolge the name, it is Undocumented.
>>>>
>>>>Thank you. Do I understand correctly (from just scanning a found article) that I have to create a stored procedure and then the SP you mention will execute it against each database?
>>>
>>>No, you can use it directly.
>>
>>Sorry to still bother you with this question. Here is something I don't get. I found the syntax for using this SP as following:
>>
>>execute sp_MsForEachDb 'USE ?; some script'
>>
>>
>>But my "scrip" has apostrophes (') so I get errors. For example, my script for each database has to check if a certain table exist and if the length of a column in this table is less than certain number, increase it. And I can't see how to create such script without using apostrophes. How would you get around this ?
>
>
>Assuminb that the column you want to check is some kind of CHARs:
>
>execute sp_MsForEachDb 'IF NOT EXISTS(SELECT * 
>                                         FROM ?.INFORMATION_SCHEMA.Columns 
>                                      WHERE Table_Name = ''YourTableName''   AND
>                                            COLUMN_NAME = ''YourColumnName'' AND
>                                            CHARACTER_MAXIMUM_LENGTH = YourDesiredLength )
>                          BEGIN
>                               ALTER TABLE ?.dbo.YourTableName ALTER COLUMN YourColumnName varchar(YourDesiredLength)
>                         END'
>
So entering two single quotes is the way to resolve it. I didn't know that. Thank you very much!
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform