hi
I am creating a stored procedure to reduce log size when needed. I want to explicitly state which db to use but I am getting an error. How can I fix my sp so it knows which db to use?
Code:
ALTER procedure [dbo].[ToolReduceLogFileSize]
as
USE myDB
CHECKPOINT
DBCC SHRINKFILE (2,1024)
Error:
Msg 154, Level 15, State 1, Procedure ToolReduceLogFileSize, Line 5 [Batch Start Line 7]
a USE database statement is not allowed in a procedure, function or trigger.
Completion time: 2025-01-02T12:59:29.6092028-08:00
Thank you
ALTER procedure db.ToolReduceLogFileSize
@db_name nvarchar(128),
@size_mb int = 1024
AS
SET NOCOUNT ON;
DECLARE @sql nvarchar(max);
SET @sql = 'USE [' + @db_name + ']; CHECKPOINT; ' +
'DBCC SHRINKFILE (2, ' + CAST(@size_mb AS varchar(10)) + ');'
EXEC(@sql);
/*end of proc*/GO
SQL DBA,SQL Server MVP(07, 08, 09) "It's a dog-eat-dog world, and I'm wearing Milk-Bone underwear." "Norm", on "Cheers". Also from "Cheers", from "Carla": "You need to know 3 things about Tortelli men: Tortelli men draw women like flies; Tortelli men treat women like flies; Tortelli men's brains are in their flies".
January 2, 2025 at 9:13 pm
Thank you so much!!
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy