DF208: DDL and DML statements found within a routine body.

Last modified: December 25, 2024

The topic describes the DF208 T-SQL code analysis rule.

Category

PERFORMANCE

Message

DDL and DML statements found within a routine body.

Description

It is not recommended to use DDL statements after DML statements within a single routine body, due to potential recompilation issues.

Noncompliant code example

CREATE PROCEDURE dbo.demoprocedure
AS
BEGIN
  SET NOCOUNT ON
  CREATE TABLE dbo.t1 (a INT NOT NULL)
  SELECT a FROM dbo.t1
 
  CREATE TABLE dbo.t2 (a INT NOT NULL)
  SELECT a FROM dbo.t2
END
GO

Compliant solution

CREATE PROCEDURE dbo.demoprocedure
AS
BEGIN
  SET NOCOUNT ON
  CREATE TABLE dbo.t1 (a INT NOT NULL)
  CREATE TABLE dbo.t2 (a INT NOT NULL)
 
  SELECT a FROM dbo.t1
  SELECT a FROM dbo.t2
END
GO