Я столкнулся с этой ситуацией при переносе нашей базы данных из Foxpro в SQL.Как использовать поле (столбец) одной переменной таблицы в другой переменной таблицы
Ниже приведен пример сценария .. (мой исходный код немного сложнее, так просто пытался создать свой собственный пример)
Я создал несколько переменных таблиц в моей функции SQL-сервера, чтобы получить то, что я требую.
DECLARE @temp_1 TABLE(ID INT,
Name NCHAR(7),
bday DATE,
m_status NVARCHAR(10));
INSERT INTO @temp_1
SELECT Name, bday, m_status from Employee_Info
DECLARE @temp_2 TABLE(ID INT,
City NCHAR(7),
Country NVARCHAR(10),
zip NVARCHAR(10));
INSERT INTO @temp_2
SELECT City, Country, zip from Employee_Address
Далее наступает ситуацию, когда мне нужно использовать один каждый из полея из приведенной выше переменной таблицы для получения данных в мою третью переменную таблице.
Например,
DECLARE @temp_full TABLE (
Name NCHAR(7),
City NCHAR(7));
INSERT INTO @temp_full
SELECT @temp_1.Name, @temp_2.City FROM @temp_1, @temp_2 WHERE @temp_1.ID = @temp_2.ID
[EDITED TO INCLUDE INSERT USING JOINS]
INSERT INTO @temp_full
SELECT @temp_1.Name, @temp_2.City FROM @temp_1 INNER JOIN @temp_2 ON @temp_1.ID = @temp_2.ID
Однако, когда я @ temp_1.Name, @ temp_2.City я получаю ошибку говоря, что я должен delcare скалярную переменную @ temp_1, @ temp_2.
Может кто-нибудь скажет мне, как решить эту проблему.
Благодарим за помощь.
Здесь могут быть и другие проблемы, но пытаетесь ли вы запускать эти запросы по одному за раз или вы работаете одновременно? – jimdrang
Неявная область объединений SQL antipattern. YOu shoudl alwys использует явные объединения. Это 21-й век, и это было добавлено к стандарту ANSII в 1992 году. Не могли бы вы использовать код на другом языке, который был заменен в 1992 году чем-то лучшим? – HLGEM
Разве вы не связываете эти две таблицы, а затем присоединяете temp_1 к temp_2 в своем последнем выборе? – Jerry