Skip to content

Commit 26630ce

Browse files
authored
TSQL: allow 'OR ALTER' on 'CREATE TRIGGER' (#5772)
1 parent 4722f99 commit 26630ce

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

src/sqlfluff/dialects/dialect_tsql.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5060,6 +5060,7 @@ class CreateTriggerStatementSegment(BaseSegment):
50605060

50615061
match_grammar: Matchable = Sequence(
50625062
"CREATE",
5063+
Sequence("OR", "ALTER", optional=True),
50635064
"TRIGGER",
50645065
Ref("TriggerReferenceSegment"),
50655066
"ON",

test/fixtures/dialects/tsql/triggers.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,9 @@ GO
121121

122122
DISABLE TRIGGER safety ON DATABASE;
123123
GO
124+
125+
CREATE OR ALTER TRIGGER reminder1
126+
ON Sales.Customer
127+
AFTER INSERT, UPDATE
128+
AS RAISERROR ('Notify Customer Relations', 16, 10);
129+
GO

test/fixtures/dialects/tsql/triggers.yml

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# computed by SQLFluff when running the tests. Please run
44
# `python test/generate_parse_fixture_yml.py` to generate them after adding or
55
# altering SQL files.
6-
_hash: cd35978be7ba6609d00c6c3fab646c1ad57806dfc4fbeb7fc4d04ef40784acba
6+
_hash: 876d3e99f9a162ad647cc28a39d0eaa9c9e5e52570c8248c9e4ae9eb87ce2c90
77
file:
88
- batch:
99
statement:
@@ -631,3 +631,36 @@ file:
631631
statement_terminator: ;
632632
- go_statement:
633633
keyword: GO
634+
- batch:
635+
statement:
636+
create_trigger:
637+
- keyword: CREATE
638+
- keyword: OR
639+
- keyword: ALTER
640+
- keyword: TRIGGER
641+
- trigger_reference:
642+
naked_identifier: reminder1
643+
- keyword: 'ON'
644+
- table_reference:
645+
- naked_identifier: Sales
646+
- dot: .
647+
- naked_identifier: Customer
648+
- keyword: AFTER
649+
- keyword: INSERT
650+
- comma: ','
651+
- keyword: UPDATE
652+
- keyword: AS
653+
- statement:
654+
raiserror_statement:
655+
keyword: RAISERROR
656+
bracketed:
657+
- start_bracket: (
658+
- quoted_literal: "'Notify Customer Relations'"
659+
- comma: ','
660+
- numeric_literal: '16'
661+
- comma: ','
662+
- numeric_literal: '10'
663+
- end_bracket: )
664+
- statement_terminator: ;
665+
- go_statement:
666+
keyword: GO

0 commit comments

Comments
 (0)