Jeg anbefaler ikke at gøre dette, da hver gang det oprettes skal der beregnes en ny udførelsesplan, men JA, det kan bestemt lade sig gøre (alt er muligt, men ikke altid anbefalet).
Her er et eksempel:
CREATE PROC [dbo].[sp_helloworld]
AS
BEGIN
SELECT 'Hello World'
DECLARE @sSQL VARCHAR(1000)
SET @sSQL = 'CREATE PROC [dbo].[sp_helloworld2]
AS
BEGIN
SELECT ''Hello World 2''
END'
EXEC (@sSQL)
EXEC [sp_helloworld2];
DROP PROC [sp_helloworld2];
END
Du får advarslen
The module 'sp_helloworld' depends on the missing object 'sp_helloworld2'.
The module will still be created; however, it cannot run successfully until
the object exists.
Du kan omgå denne advarsel ved at bruge EXEC('sp_helloworld2') ovenfor.
Men hvis du ringer til EXEC [sp_helloworld], vil du få resultaterne
Hello World
Hello World 2