2009-10-09 6 views

Répondre

1

L'erreur est dans la première ligne

Msg 102, niveau 15, état 1, ligne 1 Syntaxe incorrecte près de 'table'.

Au lieu de Declare @ tab1 comme la table essayer

Declare @ tab1 que la table (col1 varchar (100)) à savoir le schéma complet de la table

par exemple

Declare @ tab1 que la table (col1 varchar (100))

Insérer dans @ tab1 sélectionnez [Nom de la personne] de tblInformation

Select * from @ tab1

Sortie:

col1

xyz
abc

3

L'erreur est avec cette ligne:

Declare @ tab1 comme la table

syntaxe incorrecte près de 'table'.

mais vous avez aussi fait une erreur avec votre insert qui devrait être:

select * into tab1 
from table2 

pour autant que je sais que vous devez déclarer le schéma lors de l'utilisation tableau varibles, si vous utilisez des tables de temp que vous n » t si cela fonctionnerait

select * into #tab1 
from table2 

Voir msdn

0

cela fonctionne:

declare @tab table (BillID int) 
insert into @tab 
select top 10 BillID from tblBill 
select * from @tab 

Cela ne fonctionnera pas:

select top 10 BillID into @tab from tblBill 
select * from @tab 

Si vous souhaitez définir le schéma de la table var à la volée, vous pouvez utiliser quelque chose comme ceci:

declare @str varchar(1000) 
set @str = 'declare @tab table (BillID int) ' + 
'insert into @tab ' + 'select top 10 BillID from tblBill ' + 'select * from @tab ' 
exec(@str) 

En outre, recherche (sp_executesql) sur le site de Pinal Dave pour un bon conseil

Questions connexes