SQL Server 2008 にテーブルが既に存在するかどうかを確認するコードを記述し、存在しない場合は作成してレコードを挿入したいと考えています。方法を教えてください。そのためのストアド プロシージャを作成する必要がありますか?
6191 次
3 に答える
5
IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.TABLES T
WHERE T.TABLE_SCHEMA = 'dbo'
AND T.TABLE_NAME = 'YOURTABLENAME' )
BEGIN
CREATE TABLE dbo.YOURTABLENAME
(
ColumnDefinitionsHere
)
END
GO
于 2013-08-23T09:54:00.760 に答える
0
(SELECT count(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'TheTable')
count が 0 を返す場合、テーブルが終了していないことを意味します
于 2013-08-23T09:55:55.373 に答える
0
これを行うには、システム ビューを調べる必要があります。
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SomeTable]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[SomeTable](
[SomeId] [int] NOT NULL
)
END ELSE PRINT 'SomeTable already exists.';
于 2013-08-23T10:01:42.020 に答える