2016-12-22 6 views
-4

コード:SQL Serverのエラー

Declare @ParmDefinition Nvarchar(1000), 
     @St Nvarchar(500), 
     @TTable varchar(30) 

Set @TTable='[0Detail]' 

Declare @TTempStore Table (
         Iden Int, 
         Row_ Int, 
         Accs_iden int, 
         Am_Bed Money, 
         Am_Bes Money, 
         Doc_No Decimal(15,0), 
         Desc_ Nvarchar(500), 
         Checked bit, 
         Error_ int) 

SET @ParmDefinition = N'@alaki table(Iden Int, 
            Row_ Int, 
            Accs_iden int, 
            Am_Bed Money, 
            Am_Bes Money, 
            Doc_No Decimal(15,0), 
            Desc_ Nvarchar(500),Checked bit,Error_ int) OUTPUT ' 

Set @St = N' Select * into @alaki from '[email protected] 

EXECUTE sp_executesql @St, @ParmDefinition, @alaki = @TTempStore 

SELECT * FROM @TTempStore 

エラー:

メッセージ156、レベル15、状態1、行1キーワード 'テーブルの近く
不適切な構文。

メッセージレベル102、レベル15、状態1、行1
'@alaki'の近くの構文が正しくありません。

答えて

0

あなたは、私たちはその次の時間を覚えて、あなたを助けることができるようにするための最小限の作業サンプルを投稿する必要があります。

#TTempStoreでテーブルを宣言してみませんか?

Declare @St Nvarchar(500),@TTable varchar(30) 

Set @TTable='[0Detail]' 

create table #TTempStore (

        Iden Int, 
        Row_ Int, 
        Accs_iden int, 
        Am_Bed Money, 
        Am_Bes Money, 
        Doc_No Decimal(15,0), 
        Desc_ Nvarchar(500), 
        Checked bit, 
        Error_ int) 


Set @St=N' Select * into #TTempStore from '[email protected] 
EXECUTE @St 
Select * from #TTempStore 
drop table #TTempStore --here you can leave the table if you have more things to do 

私はそれをテストしていませんが、正しい方向を指しているはずです。必要があれば、おそらく後にSQLのフィドルを作ることができます。

0

毎回@TTableの値が異なる可能性がありますか?常に[0Detail]になる場合は、動的SQLは必要ありません。ただし、ここでは、問題の動的SQLソリューションです:

Declare @St Nvarchar(500),@TTable varchar(30) 

Set @TTable='[0Detail]' 

Declare @TTempStore Table (

        Iden Int, 
        Row_ Int, 
        Accs_iden int, 
        Am_Bed Money, 
        Am_Bes Money, 
        Doc_No Decimal(15,0), 
        Desc_ Nvarchar(500), 
        Checked bit, 
        Error_ int) 

Set @St=N' Select * from '[email protected] 

INSERT INTO @TTempStore 
EXECUTE (@St) 

Select * from @TTempStore