Nedoporučuji to dělat, protože pokaždé, když je vytvořen, musí se vypočítat nový prováděcí plán, ale ANO, rozhodně to lze udělat (Všechno je možné, ale ne vždy se doporučuje).
Zde je příklad:
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
Zobrazí se varování
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.
Toto varování můžete obejít pomocí EXEC('sp_helloworld2') výše.
Ale pokud zavoláte EXEC [sp_helloworld], dostanete výsledky
Hello World
Hello World 2