2009-10-16 66 views
1

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 
+1

为什么下来投票?对我来说这似乎是一个有效的问题,并有一个非常具体的答案。 – Gratzy 2009-10-16 16:18:55

+0

@Gratzy:我没有投票,但由于逗号的使用完全不一致,OP可能至少自己先走了 – gbn 2009-10-25 11:01:58

回答

6

您在插入列表中的第一列之后缺少逗号。

你也缺少在VALUES列表中的每个值之间用逗号。

2

只是为了完成其他人说什么,这里是代码,我已经添加了逻辑使脚本重新运行的,所以你运行它后的第一个,你不会得到与脚本创建错误时间。

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 
     )