【发布时间】:2013-01-03 15:51:43
【问题描述】:
我正在尝试创建将一些数据插入到我的表中的存储过程,但是我遇到了一些错误,例如
列名无效
对于我在存储过程中指定的所有列。我有一个名为 ID 的 IDENTITY COLUMN,每次插入记录时都会增加一。表中还有其他一些列,但它们可以为空。这是我的存储过程,无法弄清楚我在这里做错了什么。
USE MYDB
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Test]
@myID bigInt,
@myFirstName nvarchar(50)
,@myLastName nvarchar(50)
,@myAddress nvarchar(MAX)
,@myPort int
AS
BEGIN
SET NOCOUNT ON;
BEGIN
insert into MYDB.dbo.MainTable (MyID, MyFirstName, MyLastName, MyAddress, MyPort)
values(@myID, @myFirstName, @myLastName, @myAddress, @myPort)
END
END
GO
这是表定义:
USE [MYDB]
GO
/****** Object: Table [dbo].[MainTable] Script Date: 01/03/2013 11:17:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MainTable](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[MyID] [bigint] NULL,
[MyFirstName] [nvarchar](50) NULL,
[MyLastName] [nvarchar](50) NULL,
[MyAddress] [nvarchar](max) NULL,
[MyPort] [int] NULL,
[MyZipCode] [nchar](10) NULL,
[CompName] [nvarchar](50) NULL
) ON [PRIMARY]
GO
【问题讨论】:
-
显示你的表定义。
-
如果它是一个标识列,您只需将其从列列表中排除。您可能还想添加一个 try/catch。
-
我刚刚添加了表定义。我还添加了身份列,但仍然出现相同的错误。感谢您的帮助
-
dbo.MainTable肯定存在于MyDb数据库中吗? -
您能否添加一个 CREATE TABLE 脚本来显示更多信息,而不是表中列的图像?最简单的方法是右键单击 Management Studio 中的表,然后从菜单中选择 SCRIPT Table 作为 Create to Clipboard。
标签: sql-server tsql stored-procedures