Question: I am new to SQL Server triggers.

Suppose we write an `after insert` trigger for table `tableA` and in that trigger, can we have an `INSERT` operation on the same table i.e `tableA`?

Any suggestions please?

Answer: 
You can use [`CONTEXT_INFO`](https://technet.microsoft.com/en-us/library/ms189252(v=sql.105).aspx) to control when the trigger should or should not run:

```
CREATE TRIGGER TR_YourTable_AfterInsert ON YourTable
  AFTER INSERT
AS
BEGIN
  DECLARE @contextInfo VARBINARY(128)
  SELECT @contextInfo = CONTEXT_INFO()

  IF (@contextInfo != 0x123456) BEGIN
    INSERT INTO YourTable ...
  END

  SET CONTEXT_INFO 0x123456 --Setting the context info to prevent nested execution.
END

```

Now you can either explicitly set a value before the INSERT:

```
SET CONTEXT_INFO NULL; -- resetting to default
                       -- (not necessary when you are on a new connection)
INSERT INTO YourTable...

```

To answer the question in the title: Yes, an AFTER INSERT trigger can insert rows into the same table, but depending on the server's configuration it can lead to nested trigger execution.
Yes, you can:

**[SqlFiddleDemo](http://sqlfiddle.com/#!6/f19cf/1/0)**

```
CREATE TABLE tab(a INT);

INSERT INTO tab(a) VALUES (1);

CREATE TRIGGER trg_tab ON tab
 AFTER INSERT
AS
   INSERT tab
   SELECT a+1 FROM inserted;

INSERT INTO tab(a) VALUES (10);

SELECT *
FROM tab;

```

Result:

```
a
1
10
11

```