Ad

Script To Create Multiple Stored Procedures

- 1 answer

I am testing a scenario with a high number of stored procedures in mssql. Is there a way to script creating ~5000 stored procedures? My attempts have been futile.

declare @id int 
select @id = 1
while @id >=1 and @id <= 1000
begin
    CREATE PROCEDURE 'SelectAllCustomer'+ convert(varchar(5))  AS SELECT * FROM Customers
    select @id = @id + 1
end
go

Fails with:

Msg 156, Level 15, State 1, Line 7 Incorrect syntax near the keyword 'PROCEDURE'.

Even just adding a parameter to the procedure name is failing:

CREATE PROCEDURE 'SelectAllCustomer'+ 'test' AS SELECT * FROM Customers

fails with:

Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'SelectAllCustomer'.

Ad

Answer

Here you go. Pretty straight forward.

declare @id int = 1
    , @sql NVARCHAR(MAX)

while @id >=1 and @id <= 1000
begin
    select @sql = 'CREATE PROCEDURE SelectAllCustomer'+ convert(varchar(5), @id) + ' AS SELECT * FROM Customers;'
    exec sp_executesql @sql
    select @id = @id + 1
end
Ad
source: stackoverflow.com
Ad