Kiedy generuję skrypty do tworzenia schematów sql ręcznie, zwykle po prostu wywołuję "Create Procedure ...", jednak zauważam, że kiedy generujesz skrypt za pomocą opcji Tasks/Generate Scripts, to używa "spexecutesql @statement = .." np.Dlaczego serwer sql generuje procedury przechowywane za pomocą instrukcji sp_executesql z ciągiem?
EXEC dbo.sp_executesql @statement = N'-- =============================================
-- Author: Me
-- Create date: 20/03/2009
-- Description: Does stuff
-- =============================================
CREATE PROCEDURE [dbo].[MyProc]
-- Add the parameters for the stored procedure here
@StartDate datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
...
END
'
Dlaczego tak jest? Czy chodzi o zatrzymywanie komentarzy? Dzięki
Nie jestem pewien, czy to prawda. Często piszę napisy typu "JEŚLI NIE ISTNIEJ" i nie wykonuję skryptów przy użyciu sp_executesql –
Jestem prawie pewien, że podejście nie zadziała dla Alter i tworzy związane z przechowywanymi procedurami –