Я использую проект базы данных Visual Studio 2015, чтобы попытаться вставить строки в таблицы базы данных, которые были созданы проектом. Вставка sql работает в той же таблице в SSMS, но не при запуске через проект.Почему этот оператор вставки не соответствует таблице?
я получаю ошибку: Column name or number of supplied values does not match the table definition.
TSQL вставки сценария:
if not exists (select top 1 1 from [dbo].[PricingGroupTypes]) begin
INSERT INTO [dbo].[PricingGroupTypes]
([Name])
VALUES
('User')
,('Product Format')
print 'Pricing Group Types added'
end
Определение таблицы (в проекте DB):
CREATE TABLE [dbo].[PricingGroupTypes] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (250) NOT NULL,
CONSTRAINT [PK_PricingGroupTypes] PRIMARY KEY CLUSTERED ([Id] ASC)
);
Определение таблицы (через SSMS):
USE [Toyland]
GO
/****** Object: Table [dbo].[PricingGroupTypes] Script Date: 11/14/2016 11:05:05 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PricingGroupTypes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](250) NOT NULL,
CONSTRAINT [PK_PricingGroupTypes] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Другие вставки в том же скрипте, похоже, не сработали, но общий скрипт будет откат, поэтому после выполнения базы данных будет пуст. И, как я уже сказал, тот же самый сценарий РАБОТАЕТ, когда я запускаю его в SQL Server Management Studio.
Возможно, есть некоторые настройки Visual Studio, которые мне не хватает, но это самый простой скрипт во всем проекте, поэтому вы можете понять, почему я озадачен.
Я думаю, что это какой-то другой оператор Insert или вы уклонили скобки в своем проекте при построении запроса. –
Есть ли в вашей таблице триггер? –
@ChrisPratt Это должно дать мне два ряда. Столбец ID генерируется базой данных, поэтому все, что я должен указать, - это имя. – Matt