«GO» не является языком T-SQL. Это ключевое слово, интерпретируемое такими инструментами клиента, как SSMS, как разделитель пакетов (что означает «отправлять текст на сервер»).
Теперь CREATE TRIGGER должен быть первым оператором в пакете, поэтому «USE dbname» не может использоваться.
Если вы упомянули «ИСПОЛЬЗОВАТЬ dbnname» перед EXEC, то это может произойти в базе данных по умолчанию для соединения. Вы должны проверить (я не могу сейчас, извините)
--Might work
USE dbase
EXEC ('CREATE TRIGGER [blah]
')
Или вам придется использовать sqlcmd или osql для подключения и запуска кода: это позволяет вам устанавливать контекст БД при подключении. Но не в T-SQL.
Или вы можете попробовать ALTER LOGIN xxx С DEFAULT_DATABASE = имя_базы перед EXEC
ALTER LOGIN xxx WITH DEFAULT_DATABASE = dbname
--Now the EXEC will connect to default db if above approach fails
EXEC('CREATE TRIGGER [blah]
')