そのため、開発中のプログラムのSQLに取り組んでいますが、これまで実際に見たことのない奇妙な問題が発生しています。これが私に問題を与えているクエリです:
insert into [db].[dbo].[table] (JobNum, JobSeq, OperationNumber, WorkCenter,
ResourceGroup, Material, MaterialQuantity, MaterialCost, LbrHoursPerPiece,
ExtendedDescription, PreviousMaterial, UniqueID)
values ('J000001234', 1234, 123, 'UFAN', 'FANASSY', '12345678',
4, 50, 1, 'DESC', '', '')
次に、同じテーブルから選択を行います。
SELECT * FROM [db].[dbo].[table]
where JobNum = 'J000001234'
そして、これが返されるものです:
何らかの理由で、50の値を指定しても、MaterialCostフィールドにNULLが表示され、他のすべてが正しく挿入されている理由がわかりません。念のため、テーブルのデザインは次のとおりです。
何かご意見は?
編集:これは.NETコードで使用しているクエリですが、現時点ではSQL ServerManagementStudioでのみテストしていることを指摘しておきます。
また、コメント投稿者が作成クエリを要求したので、次のようになります。
...
CREATE TABLE [dbo].[table](
[JobNum] [nvarchar](20) NOT NULL,
[JobSeq] [int] NOT NULL,
[OperationNumber] [int] NULL,
[WorkCenter] [nvarchar](6) NULL,
[ResourceGroup] [nvarchar](30) NULL,
[Material] [nvarchar](30) NULL,
[MaterialQuantity] [decimal](18, 8) NULL,
[MaterialCost] [decimal](18, 5) NOT NULL,
[LbrHoursPerPiece] [decimal](10, 5) NULL,
[ExtendedDescription] [nvarchar](300) NULL,
[PreviousMaterial] [nvarchar](300) NULL,
[UniqueID] [varchar](200) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
ALTER TABLE [dbo].[Table] ADD CONSTRAINT [DF_Table_MaterialCost] DEFAULT ((0.00)) FOR [MaterialCost]
GO
編集2:そこで、CREATE TABLEクエリを使用して、トラブルテーブルと同じ別のテーブルtableTESTを作成しました。TESTテーブルで同じクエリを実行すると、正常に機能しました。また、適切なデータを取得していないMaterialCostフィールドが、最初に作成した後、かなり後にテーブルに追加されたことも指摘しておきます。