2012-08-16 58 views
-1

其實,如何在數據庫SQL Server中創建一個新表使用查詢2008查詢創建SQL Server中的新表2008年

我得到了一個錯誤,當我嘗試執行我的查詢

這是我的代碼

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FilesStore]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
drop table [dbo].[FilesStore] 
GO 

CREATE TABLE [dbo].[FilesStore] (
    [FileId] [int] IDENTITY (1, 1) NOT NULL , 
    [OriginalPath] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , 
    [FileData] [image] NOT NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
GO 

我得到這個錯誤消息

的DROP TABLE SQL構造或語句不支持
不支持CREATE TABLE SQL結構或語句。

請人幫我

感謝

+0

我認爲這裏的重要一點是沒有說 - 你如何執行SQL? - 這聽起來像有一個「安全功能」,阻止您執行這些DDL命令。 – 2012-08-16 16:40:51

+1

你可以顯示執行查詢的代碼嗎? – 2012-08-16 16:41:01

+0

實際上,我只需在代碼中單擊右鍵,然後單擊執行sql – 2012-08-16 16:42:29

回答

0

我想這個腳本和完美。

你有db_owner角色嗎?

+0

真的嗎?我已經嘗試了10次,結果仍然錯誤...什麼是db_owner角色?其實我是一個在c#和sql服務器的新手 – 2012-08-16 16:45:09

+0

是的,腳本的語法是好的。 db_owner是執行這些操作所需的角色。確保您在正確的DB上執行腳本。另外,您使用的是哪個版本的SQL 2008?嘗試使用此命令併發布結果exec sp_helpuser – 2012-08-16 17:18:00

0

權限!您沒有足夠的權限來執行CREATE或DROP。 在您的數據庫上檢查您的用戶的安全數據庫角色。

由於DROP不是授予的權限,人誰可以刪除表是:

  • DBO的
  • 架構的所有者
  • 表(通常模式所有者的所有者,但可以 改變別人)的 db_owner固定的db_ddladmin固定數據庫角色的成員
  • 成員
  • 數據庫角色成員sysadmin固定服務器角色的表或權限控制許可是 在桌子上暗示控制上的架構的ALTER權限的
  • 受贈或權限 的
  • 受贈意味着改變的模式。

更新:
如何自己添加爲的db_owner爲你的數據庫?

在SQL Server Management Studio上,轉到樹中的SERVER的Security> Logins節點。 找到用於連接到SQL Server的信用點,右鍵單擊「屬性」。
單擊用戶映射,檢查右邊列表中的數據庫複選框,並選中底部的db_owner複選框。點擊確定。
再次嘗試查詢。