public void AlterProcedure() { var statement = Sql.AlterProcedure("proc00", true) .Parameters(Parameter.Int("@i01"), Parameter.DateTime("@sd02").DefaultValue(DateTime.Parse("2016-01-01"))) .InputOutputParameters(Parameter.Int("@i03")) .OutputParameters(Parameter.String("@s04"), Parameter.Bit("@b05")) .ReturnValue(Parameter.Int("@retVal")) .As( Sql.Set("@b05", Sql.Scalar(1)), Sql.Set("@s04", Sql.Scalar("outputString")), Sql.Set("@i03", Sql.Name("@i01")), Sql.Return(123) ); var command = Utilities.GetCommand(statement); Assert.NotNull(command); Assert.Equal(@"IF OBJECT_ID ( N'[proc00]', N'P' ) IS NULL BEGIN; EXEC (N' CREATE PROCEDURE [proc00] ( @i01 INT OUTPUT, @sd02 DATETIME = N''2016-01-01T00:00:00'' OUTPUT, @i03 INT OUTPUT, @s04 NVARCHAR ( MAX ) OUTPUT, @b05 BIT OUTPUT ) AS BEGIN; SET @b05 = 1; SET @s04 = N''outputString''; SET @i03 = @i01; RETURN 123; END; ' ); END; ELSE BEGIN; EXEC (N' ALTER PROCEDURE [proc00] ( @i01 INT OUTPUT, @sd02 DATETIME = N''2016-01-01T00:00:00'' OUTPUT, @i03 INT OUTPUT, @s04 NVARCHAR ( MAX ) OUTPUT, @b05 BIT OUTPUT ) AS BEGIN; SET @b05 = 1; SET @s04 = N''outputString''; SET @i03 = @i01; RETURN 123; END; ' ); END;", command.CommandText); }
public void AlterProcedure() { var statement = Sql.AlterProcedure("proc00", true) .Parameters(Parameter.Text("columnValue")) .As( Sql.Select.Output(Sql.Name("id")).From(Sql.Name("t1")) ); var command = Provider.GetCommand(statement); Assert.IsNotNull(command); Assert.AreEqual("DROP PROCEDURE IF EXISTS `proc00`;\r\nDELIMITER $$\r\nCREATE PROCEDURE `proc00`\r\n(\r\nIN `columnValue` TEXT\r\n)\r\nBEGIN\r\nSELECT `id` FROM `t1`;\r\nEND $$;\r\nDELIMITER ;", command.CommandText); }