開発データベースをローカルにスクリプト化しました。私たちのアプリケーションのストアドプロシージャには、テーブルが存在するかどうかを確認するコードがあります。コードがあれば、テーブルを削除して再作成します。私は、自分のローカルデータベースにコードを実行すると、テーブルが存在するかどうかを確認するチェックが開発時と同じように動作しないことに気付きました。特に、OBJECTPROPERTY(ID、N'IsUserTable ')はローカルで実行しているときにNULLを返しますが、DEVには1を返します。矛盾した結果: "select * from sysobjects ID = object_ID(N'TableName ')およびOBJECTPROPERTY(ID、N'IsUserTable')= 1"
if exists (select * from [CLASS].DBO.sysobjects where ID = object_ID(N'[CLASS].DBO.[CDB_SCRB_CLIENT_ACCOUNT]') and OBJECTPROPERTY(ID, N'IsUserTable') = 1)
BEGIN
PRINT 'EXISTS!'
drop table [CLASS].DBO.[CDB_SCRB_CLIENT_ACCOUNT]
END
ELSE PRINT 'NO!'
GO
CREATE TABLE [CLASS].DBO.[CDB_SCRB_CLIENT_ACCOUNT] (
[CLIENT_ID] [bigint] NULL ,
[CLIENT_Name] [char] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[GOC] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[AC_DATE] [datetime] NULL ,
[EFF_Date] [datetime] NULL ,
[AC_STATUS] [char] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[REPORTING_DATE] [datetime] NULL,
[V2V_IND] [char] (1) NULL, --2017.10
[LAST_OPER_ID] [char] (8) NULL,
[LAST_TIMESTAMP] [datetime] NULL
) ON [PRIMARY]
GO
NO!
Msg 2714, Level 16, State 6, Line 2
There is already an object named 'CDB_SCRB_CLIENT_ACCOUNT' in the database.
.
私は、チェックを変更した場合、それが動作することを
if exists (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CDB_SCRB_CLIENT_ACCOUNT]') AND type in (N'U'))
drop table [CLASS].DBO.[CDB_SCRB_CLIENT_ACCOUNT]
を次のようにすることを知っているが、私はちょうど実行するには、このコードの多くの出現箇所を変更したくありません私のローカルデータベースのアプリ。
SELECT @@version --on dev server
Microsoft SQL Server 2012 (SP3-CU7) (KB3205051) - 11.0.6579.0 (X64)
Dec 22 2016 11:18:09
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
SELECT @@version --on local workstation
Microsoft SQL Server 2012 (SP1) - 11.0.3156.0 (X64)
May 4 2015 18:48:09
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
各テーブルのテーブルをスクリプト化すると、同じに見えます。違いを説明できるのは何ですか?
あなたはこの答えを考えがあります。http: //dba.stackexchange.com/a/27953 – Forty3