У меня есть эта проблема. У меня есть Currency
таблицу, которая выглядит следующим образом:Как использовать внутренний SELECT внутри оператора INSERT
Id|IntKey|Text
1 10 USD
2 20 EUR
А есть еще одна таблица - Accounts
, где у меня есть Foreign Key CurrencyId
. Проблема в том, что когда я собираю информацию для учетной записи, валюта приходит ко мне как строковое значение или значение столбца Text
в моей базе данных. Однако я хочу использовать IntKey
, чтобы соответствовать CurrencyId
, так что я хочу в моем INSERT
запросе, чтобы предоставить IntKey
на основе строки, оцененной.
Самый простой способ, что я могу реализовать себя сначала взять значение мне нужно, это просто выполнение проектно отдельный выбор как
SELECT IntKey FROM Currency WHERE Text = @param
затем выполнить его, возьмите значение и использовать его в моем INSERT
однако Я бы Лик, чтобы объединить его с одного запроса (если это возможно), я попытался это:
INSERT INTO [DB].[dbo].[Accounts] VALUES
(@IBAN, SELECT IntKey FROM [dbo].[Currency] WHERE Text = @param, ...)
, а затем
SqlCommand command = new SqlCommand(insertNewAccount, connection);
command.ExecuteScalar();
Но это не сработает. Возможно ли это и как его реализовать?
Я получаю этот запрос '" INSERT INTO [DB]. [DBO]. [Счета] ВЫБРАТЬ @ IBAN, IntKey FROM [DBO]. [Валюта] WHERE Text = @param, ..', который, когда я попробуйте выполнить, дает мне erro «Недопустимый синтаксис рядом», « – Leron
К сожалению, я пропустил ваш вопрос. Если вы хотите вставить другие столбцы, они должны быть в 'SELECT', как' @ variables' или столбцы из запроса. –