0

Beginner ASP.NET MVC 4を読んでいて、T-SQL を使用していくつかのテーブルを作成する必要があります。これまでのところすべて正常に動作していますが、これを T-SQL エディター (Visual Studio 2012) でコピーしようとすると、

ALTER TABLE [dbo].[UserProfile] 
ADD
[FirstName] VARCHAR(150) NOT NULL,
[LastName] VARCHAR(150) NOT NULL,
[Email] VARCHAR(150) NOT NULL;

エラーは次のとおりです。

このコンテキストでは、ALTER TABLE ステートメントを使用する代わりに、CREATE TABLE を使用して列を指定する必要があります。

他のテーブルには、次のコードがあります。

...
REFERENCES **[UserProfile]** ([UserId])
...

しかし、本には [UserProfile] テーブルはありません。
誰かがこれで私を助けることができますかALTER TABLE?

4

4 に答える 4

1

ALTER TABLEそのテーブルがデータベースに存在する場合にのみ機能します。

UserProfileテーブルがないと言う場合は、次のように作成する必要があります。

CREATE TABLE [dbo].[UserProfile] (
  [FirstName] VARCHAR(150) NOT NULL,
  [LastName] VARCHAR(150) NOT NULL,
  [Email] VARCHAR(150) NOT NULL
)
于 2013-08-27T09:16:40.147 に答える
0

最初にテーブルが存在するかどうかを確認し、存在しない場合は作成します。

IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE [object_id] = OBJECT_ID(N'dbo.UserProfile', N'U'))
BEGIN
    CREATE TABLE [dbo].[UserProfile] (
          [FirstName] VARCHAR(150) NOT NULL,
          [LastName] VARCHAR(150) NOT NULL,
          [Email] VARCHAR(150) NOT NULL
        )
END

次に、必要な個々の列が存在するかどうかを確認し、それらを処理します

IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE [name] = 'FirstName' AND [object_id] = OBJECT_ID(N'dbo.UserProfile', N'U'))
BEGIN
    ALTER TABLE dbo.UserProfile 
        ADD [FirstName] VARCHAR(150) NOT NULL
END

IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE [name] = 'LastName' AND [object_id] = OBJECT_ID(N'dbo.UserProfile', N'U'))
BEGIN
    ALTER TABLE dbo.UserProfile 
        ADD LastName VARCHAR(150) NOT NULL
END

IF NOT EXISTS (SELECT 1 FROM sys.columns WHERE [name] = 'Email' AND [object_id] = OBJECT_ID(N'dbo.UserProfile', N'U'))
BEGIN
    ALTER TABLE dbo.UserProfile 
        ADD Email VARCHAR(150) NOT NULL
END
于 2013-08-28T22:36:06.003 に答える