2017-02-08 4 views
0

ストアドプロシージャでXMLをインポートします。 (SP)テーブルに登録してインポートする

私はSPは私がテーブルは以下のコードに名前通過したときに、私はエラーを取得するが機能することを、各インポートのための新しいテーブルを作成したい:

Must declare the table variable "@sTablename". 

が試み:

メイキング@sTablename - > DECLARE @sTablename var(50)

これは以前に尋ねられたことはありますが、SO/Googleでは検索されているはずですが、間違った質問がありますか?

USE [DB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER PROCEDURE [dbo].[spAddNewDataToHoldingTable] 

@sUPRN varchar(510), 
@sTablename varchar(50) 

AS 
BEGIN 
--------------------------------------- 
INSERT INTO @sTablename 
(
[UPRN] 
) 

VALUES 
(
@sUPRN 
) 
--------------------------------------- 
END 
+0

異なるテーブル変数としてあなたのテーブルの変数と同様に両方の異なる変数を使用してください。 –

答えて

1

お試しください。

USE [DB] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER PROCEDURE [dbo].[spAddNewDataToHoldingTable] 

@sUPRN varchar(510), 
@sTablename varchar(50) 

AS 
BEGIN 
--------------------------------------- 
DECLARE @sTablename_ TABLE (UPRN varchar(510)) 

INSERT INTO @sTablename_ 
(
[UPRN] 
) 

VALUES 
(
@sUPRN 
) 
--------------------------------------- 
END 

注:このIVEでが宣言「@sTablename_」あなたはあなたの手順の入力変数としてsTablename` @同じ変数を `使用しようとしているあなたのプロシージャの入力変数

+0

クローズ感謝ですが、テーブルがすでに存在するので、実際には1つ以上の挿入が多いので、テーブル(UPRN varchar(510))を削除できますか?たぶんDECLAREのようなもの - atTablename_ SET -atTablename_ = atsTablename(アットマークを置き換える必要がありました) – indofraiser

+0

@indofraiserあなたのクエリであなたのテーブル変数を宣言しています..? –

+0

私は早い段階で新しいテーブルを作成し、TableYYYMMDDと言うと、このテーブルに一連のデータをインポートします。これを行うには、テーブルを挿入する必要があります。 – indofraiser

関連する問題