J'ai des problèmes pour déclarer des variables de table multibrins dans Microsoft SQL Server. Essayer de séparer les tables par des virgules, mais semble me donner des erreurs de syntaxe.
Le code ressemble à ceci. Affichez à la fois le code comme exemple et comme image pour que vous puissiez voir les marques d'erreur:
DECLARE
@StructuredProducts TABLE(
StructuredProductId INT
,ArrangerIdv2 INT
,ISIN VARCHAR(50)
,InstrumentId INT
,Caption VARCHAR(100)
,DbRegDate DATE
,EndDate DATE
),
@PriceDataOld TABLE(
StructuredProductId INT
,FinalDate DATE
,FinalPriceDate DATE
,FinalPrice DECIMAL(9,3)
,FinalPriceSek DECIMAL(9,3)
),
@PriceDataEarlyExercise TABLE(
StructuredProductId INT
,EEDate DATE
,EEPriceDate DATE
,EEPrice DECIMAL(9,3)
,EEPriceSek DECIMAL(9,3)
),
@PriceDataActive TABLE(
StructuredProductId INT
,ActiveDate DATE
,ActivePriceDate DATE
,ActivePrice DECIMAL(9,3)
,ActivePriceSek DECIMAL(9,3)
)
3 Réponses :
SQL server we have to create table like this format only there is no other styles DECLARE @StructuredProducts TABLE( StructuredProductId INT ,ArrangerIdv2 INT ,ISIN VARCHAR(50) ,InstrumentId INT ,Caption VARCHAR(100) ,DbRegDate DATE ,EndDate DATE ) ; DECLARE @PriceDataOld TABLE( StructuredProductId INT ,FinalDate DATE ,FinalPriceDate DATE ,FinalPrice DECIMAL(9,3) ,FinalPriceSek DECIMAL(9,3) ); DECLARE @PriceDataEarlyExercise TABLE( StructuredProductId INT ,EEDate DATE ,EEPriceDate DATE ,EEPrice DECIMAL(9,3) ,EEPriceSek DECIMAL(9,3) ); DECLARE @PriceDataActive TABLE( StructuredProductId INT ,ActiveDate DATE ,ActivePriceDate DATE ,ActivePrice DECIMAL(9,3) ,ActivePriceSek DECIMAL(9,3) );
changez-le comme ci-dessous
DECLARE
@StructuredProducts TABLE(
StructuredProductId INT
,ArrangerIdv2 INT
,ISIN VARCHAR(50)
,InstrumentId INT
,Caption VARCHAR(100)
,DbRegDate DATE
,EndDate DATE
);DECLARE
@PriceDataOld TABLE(
StructuredProductId INT
,FinalDate DATE
,FinalPriceDate DATE
,FinalPrice DECIMAL(9,3)
,FinalPriceSek DECIMAL(9,3)
);DECLARE
@PriceDataEarlyExercise TABLE(
StructuredProductId INT
,EEDate DATE
,EEPriceDate DATE
,EEPrice DECIMAL(9,3)
,EEPriceSek DECIMAL(9,3)
);DECLARE
@PriceDataActive TABLE(
StructuredProductId INT
,ActiveDate DATE
,ActivePriceDate DATE
,ActivePrice DECIMAL(9,3)
,ActivePriceSek DECIMAL(9,3)
)
Pour répondre à votre commentaire
La virgule n'est-elle pas le moyen de déclarer plusieurs variables?
eh bien, oui, une virgule peut être utilisée pour déclarer plusieurs variables locales et curseurs , mais pas table variables - les docs dit explicitement ceci:
nEst un espace réservé indiquant que plusieurs variables peuvent être spécifiées et les valeurs assignées. Lors de la déclaration de variables de table , la table variable doit être la seule variable déclarée dans
DECLAREdéclaration.
Utilisez un
DECLAREpour chaque table, au lieu d'un,Vous voulez que le code soit aussi soigné que possible. La virgule n'est-elle pas le moyen de déclarer plusieurs variables?
Les tables et les variables @David sont complètement différentes, veuillez vérifier la syntaxe