मुझे त्रुटि मिली

संदेश २०७, स्तर १६, राज्य १, पंक्ति ३३
अमान्य कॉलम नाम 'फ्रंट ब्रेक1'

एक संग्रहीत प्रक्रिया को निष्पादित करते समय जो इस तरह दिखता है:

DECLARE @SqlStatement NVARCHAR(MAX);
SET @SqlStatement = 'INSERT INTO [SalesLT].[Product]('+ @Column+ ') VALUES('+@Value+')';
PRINT @SqlStatement
EXEC sys.sp_executesql  @SqlStatement, N'@Column NVARCHAR(MAX), @Value NVARCHAR(MAX)',@Column,@Value 

PRINT @SqlStatement परिणाम:

INSERT INTO [SalesLT].[Product](Name, ProductNumber, Color, StandardCost, ListPrice, Weight)  
VALUES ("Front Brakes1", "FB-98731", "Silver1", 47.286, 106.5, 317)

इसके अतिरिक्त, यहाँ तालिका डिज़ाइन है जिसमें मैं डेटा सम्मिलित करना चाहता हूँ:

CREATE TABLE [SalesLT].[Product]
(
    [ProductID] [INT] IDENTITY(1,1) NOT NULL,
    [Name] [dbo].[Name] NOT NULL,
    [ProductNumber] [NVARCHAR](25) NOT NULL,
    [Color] [NVARCHAR](15) NULL,
    [StandardCost] [MONEY] NOT NULL,
    [ListPrice] [MONEY] NOT NULL,
    [Size] [NVARCHAR](5) NULL,
    [Weight] [DECIMAL](8, 2) NULL,
    [ProductCategoryID] [INT] NULL,
    [ProductModelID] [INT] NULL,
    [SellStartDate] [DATETIME] NOT NULL,
    [SellEndDate] [DATETIME] NULL,
    [DiscontinuedDate] [DATETIME] NULL,
    [ThumbNailPhoto] [VARBINARY](MAX) NULL,
    [ThumbnailPhotoFileName] [NVARCHAR](50) NULL,
    [rowguid] [UNIQUEIDENTIFIER] ROWGUIDCOL NOT NULL,
    [ModifiedDate] [DATETIME] NOT NULL,
)
0
Lê Bảo Cường 23 नवम्बर 2019, 06:52

1 उत्तर

सबसे बढ़िया उत्तर

डबल-कोट्स के बजाय सिंगल कोट्स में टी-एसक्यूएल स्ट्रिंग अक्षर संलग्न करें ताकि परिणामी एसक्यूएल स्टेटमेंट हो:

INSERT INTO [SalesLT].[Product](Name,ProductNumber,Color,StandardCost,ListPrice,Weight)
VALUES('Front Brakes1','FB-98731','Silver1',47.286,106.5,317);

डबल-कोट्स (या स्क्वायर ब्रैकेट्स) टेबल और कॉलम नामों जैसे पहचानकर्ताओं को दर्शाते हैं।

0
Dan Guzman 23 नवम्बर 2019, 06:58