创建多个存储过程的脚本
Script to create multiple stored procedures
我正在测试一个在 mssql 中有大量存储过程的场景。有没有办法编写脚本来创建 ~5000 个存储过程?我的尝试是徒劳的。
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
失败:
Msg 156, Level 15, State 1, Line 7 Incorrect syntax near the keyword
'PROCEDURE'.
即使只是向过程名称添加参数也是失败的:
CREATE PROCEDURE 'SelectAllCustomer'+ 'test' AS SELECT * FROM Customers
失败:
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near
'SelectAllCustomer'.
给你。非常直接。
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
我正在测试一个在 mssql 中有大量存储过程的场景。有没有办法编写脚本来创建 ~5000 个存储过程?我的尝试是徒劳的。
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
失败:
Msg 156, Level 15, State 1, Line 7 Incorrect syntax near the keyword 'PROCEDURE'.
即使只是向过程名称添加参数也是失败的:
CREATE PROCEDURE 'SelectAllCustomer'+ 'test' AS SELECT * FROM Customers
失败:
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'SelectAllCustomer'.
给你。非常直接。
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