插入存储过程没有编译
问题描述:
Visual Studio 2005中仍然问我要创建或写创建过程后改变。什么可能是错的?插入存储过程没有编译
USE metroengineeringdatabase
GO
CREATE PROCEDURE dbo.InsertRecords (
@assetcodeId nvarchar(20),
@name_of_asset nvarchar(20),
@unit_no nvarchar(20),
@manufacturer nvarchar(20),
@make nvarchar(20),
@model nvarchar(20),
@capacity nchar(10),
@year_of_manufacture datetime,
@serial_no nvarchar(50),
@attach nvarchar(50),
@siteid nvarchar(50),
@location nvarchar(50),
@omid nvarchar(20),
@smid nchar(20),
@periodic_maintenance_required bit
)
AS
INSERT assetdbase
(
assetcodeidtxt
name_of_assettxt,
unit_notxt,
manufacturertxt,
maketxt,
modeltxt
capacitytxt,
year_of_manufacturetxt,
attachtxt,
siteidtxt,
locationtxt,
smidtxt,
periodic_maintenance_requiredtxt
)
VALUES(
@assetcodetxt
@name_of_asset
@unit_no
@manufacturer
@make
@model
@capacity
@year_of_manufacture
@attach
@siteid
@location
@smid
@perodic_maintenance_required
)
RETURN
GO
答
您在插入列表中的第一列之后缺少逗号。
你也缺少在VALUES列表中的每个值之间用逗号。
答
只是为了完成其他人说什么,这里是代码,我已经添加了逻辑使脚本重新运行的,所以你运行它后的第一个,你不会得到与脚本创建错误时间。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
USE metroengineeringdatabase
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertRecords]') AND type in (N'P', N'PC'))
BEGIN
exec sp_executesql N'CREATE PROCEDURE [dbo].[InsertRecords] AS SELECT ''PROCEDURE Template'''
END
GO
ALTER PROCEDURE dbo.InsertRecords (
@assetcodeId nvarchar(20),
@name_of_asset nvarchar(20),
@unit_no nvarchar(20),
@manufacturer nvarchar(20),
@make nvarchar(20),
@model nvarchar(20),
@capacity nchar(10),
@year_of_manufacture datetime,
@serial_no nvarchar(50),
@attach nvarchar(50),
@siteid nvarchar(50),
@location nvarchar(50),
@omid nvarchar(20),
@smid nchar(20),
@periodic_maintenance_required bit
)
AS
INSERT assetdbase
(
assetcodeidtxt,
name_of_assettxt,
unit_notxt,
manufacturertxt,
maketxt,
modeltxt
capacitytxt,
year_of_manufacturetxt,
attachtxt,
siteidtxt,
locationtxt,
smidtxt,
periodic_maintenance_requiredtxt
)
VALUES(
@assetcodetxt,
@name_of_asset,
@unit_no,
@manufacturer,
@make,
@model,
@capacity
@year_of_manufacture,
@attach,
@siteid,
@location,
@smid,
@perodic_maintenance_required
)
为什么下来投票?对我来说这似乎是一个有效的问题,并有一个非常具体的答案。 – Gratzy 2009-10-16 16:18:55
@Gratzy:我没有投票,但由于逗号的使用完全不一致,OP可能至少自己先走了 – gbn 2009-10-25 11:01:58