我有一個存儲過程是這樣的:如何從存儲過程的輸入值插入表以及臨時表
create procedure spname
@ID varchar,
@name varchar,
@R xml
AS
BEGIN
-- Getting values XML
create table #Table
(
country varchar,
status varchar
)
我有基於所述條件的值,以插入表,如果ID,來自存儲過程輸入和國家(來自臨時表)的名稱不存在,然後插入。我不知道如何加入所有這些的確切語法。不過我在下面嘗試,但我認爲它錯了,我想我必須使用一些循環技術,如光標?
DECLARE @Country VARCHAR;
SELECT @Country = C.Country
FROM #Table C
INSERT INTO MyTable(Id, Name, Country)
VALUES (@Id, @Name, @Country)
FROM
WHERE NOT EXISTS (SELECT 1 FROM MyTable mT
WHERE ID = @Id
AND Name = @Name
AND mt.country = C.country)
我想有價值觀錯誤的語法以及它不會成爲我的目的,臨時表中含有大量的值
我使用光標想出了一個解決辦法是這樣的:
DECLARE @country VARCHAR
DECLARE CountryCur CURSOR FOR
SELECT Country FROM #Temp
OPEN CountryCur
FETCH NEXT FROM CountryCur INTO @Country
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO MyTable(Id, Name, Country)
VALUES (@id, @name, @Country)
WHERE NOT IN (SELECT 1 FROM MyTable mT
WHERE mT.Id = @Id
AND mT.name = @name
AND mT.country = @Country)
FETCH NEXT FROM CountryCur INTO @Country
CLOSE CountryCur
DEALLOCATE CountryCur
然而,它顯示了不遠的地方語法錯誤。不知道什麼是錯的。
什麼XML參數值是什麼樣子? –
@ M.Ali:XML您不必擔心,因爲我將它轉換爲臨時表。我沒有在這裏列入。所以基本上它從臨時表和輸入參數,我需要檢查表中存在的行。如果不是,則插入。所以我提出了上面的解決方案,不確定它是否有用,但我也在附近得到語法錯誤。我對這兩個問題有任何線索? – Learner