Динамическое выполнение SQL

#sql-server

#sql-сервер

Вопрос:

Я не могу выполнить приведенный ниже запрос.Пожалуйста, помогите.

 Declare @i Int
Set @i=1
Exec    ('Create  index  tind' convert(varchar(20),@i)   ' on product(qty)')
  

Комментарии:

1. Вы получаете сообщение об ошибке или что-то в этомроде?

2. Зачем создавать 20 индексов в одном столбце?

Ответ №1:

Вы не можете использовать выражение в качестве аргумента EXEC. Сначала выполните динамический SQL

 Declare @i Int, @sql varchar(1000)
Set @i=1
Set @sql = 'Create index tind' convert(varchar(20),@i)  ' on product(qty)'
Exec (@sql)