我有错误
Msg 207,第16级,状态1,第33行无效的列名'Front Brakes1'
执行如下所示的存储过程时:
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,
)
将T-SQL字符串文字用单引号而不是双引号引起来,这样得到的SQL语句是:
INSERT INTO [SalesLT].[Product](Name,ProductNumber,Color,StandardCost,ListPrice,Weight)
VALUES('Front Brakes1','FB-98731','Silver1',47.286,106.5,317);
双引号(或方括号)表示标识符,例如表名和列名。