- PR -

SQLServer2000の計算列のIndexについて

1
投稿者投稿内容
そら豆
常連さん
会議室デビュー日: 2007/05/10
投稿数: 21
投稿日時: 2007-11-08 09:59
お世話になっております。

Insider.NET 会議室で質問させて頂いた内容なのですが、
こちらの会議室のほうが内容的に適しているのではないかと
思い、再度こちらで質問させていただきます。
重複してしまい誠に申し訳御座いません。


開発環境
WindowsXPPro
SQLServer2000
VS2003 VB.NET

SQLServer2000において、
テーブル

Create TableA(
[Code] [decimal](8, 0) NOT NULL ,
[calc_親Code] AS (floor(([Code] / 1000)))
) ON [PRIMARY]

を作成(実際はもっと列があるのですが簡略化しています)し、

このテーブルの計算列にIndexを
以下のように作成しました。

SET ARITHABORT ON
GO
SET CONCAT_NULL_YIELDS_NULL ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
SET ANSI_PADDING ON
GO
SET ANSI_WARNINGS ON
GO
SET NUMERIC_ROUNDABORT OFF
GO

CREATE INDEX [IX_Calc] ON [dbo].[TableA]([calc_親Code]) ON [PRIMARY]

set arithabort OFF
GO
set numeric_roundabort OFF
GO
set quoted_identifier OFF
GO
SET ANSI_NULLS ON
GO


Deleteのみを行うストアドプロシージャ

SET ARITHABORT ON
GO
SET CONCAT_NULL_YIELDS_NULL ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
SET ANSI_PADDING ON
GO
SET ANSI_WARNINGS ON
GO
SET NUMERIC_ROUNDABORT OFF
GO
CREATE PROCEDURE Proc_Delete
@DelCode as decimal
AS
BEGIN
Delete from TableA Where Code=@DelCode
END

set arithabort OFF
GO
set numeric_roundabort OFF
GO
set quoted_identifier OFF
GO
SET ANSI_NULLS ON
GO

を作成し、

VS2003のSQLCommandでこのストアドを実行すると、
SQLエラーとなり以下のようなメッセージが返されます。
『DELETE に失敗しました。次の SET オプションが無効な設定を持っています: 'ARITHABORT'』
同様にInsert・UpDateでもエラーとなります。

上記エラーとならないようにはどのようにすればよいのでしょうか?
ご教授よろしく御願い申し上げます。
1

スキルアップ/キャリアアップ(JOB@IT)