簡體   English   中英

T-SQL - 需要批定界符

[英]T-SQL - batch delimiter required

我正在嘗試為 Azure SQL 數據庫構建 Visual Studio 解決方案。

我有帶有CREATE TABLE及其擴展屬性的 SQL 腳本:

create table schema.table_name (
   table_name_Key integer not null,
   constraint PK_table_Name primary key (table_Name_Key, Some_Column)
)
go

if exists (select 1 from  sys.extended_properties
           where major_id = object_id('table_name') and minor_id = 0)
begin 
   execute sp_dropextendedproperty 'MS_Description',  
   'user', 'schema', 'table', 'table_name' ;
end 

execute sp_addextendedproperty 'MS_Description',  
   'This table will be used for ....', 
   'user', 'schema', 'table', 'table_name';
go

if exists (select 1 from sys.extended_properties p 
           where p.major_id = object_id('table_name')
             and p.minor_id = (select c.column_id from sys.columns c 
                               where c.object_id = p.major_id 
                                 and c.name = 'table_name_Key'))
begin
   execute sp_dropextendedproperty 'MS_Description', 
   'user', 'schema', 'table', 'table_name', 'column', 'table_name_Key';
end

execute sp_addextendedproperty 'MS_Description', 
   'Primary Key of table_name table',
   'user', 'schema', 'table', 'table_name', 'column', 'table_name_Key';
go

構建時我仍然遇到錯誤,我缺少批定界符:

錯誤 SQL71006:每批只允許一個語句。 語句之間可能需要批分隔符,例如“GO”。

我錯過了什么,在哪里? 我已經嘗試在end后添加go但仍然出錯。

如果您在 Visual Studio 中使用 SQL 服務器數據工具 (SSDT) 數據庫項目,那么您需要以不同的方式思考問題(並完成一些教程教程)。

基本上每個 object 都保存在一個腳本中,您不必編寫條件語句(如IF EXISTS... )。 您只需根據需要定義 object,SqlPackage.exe 在部署時計算出定義應該是什么。

具有一個擴展屬性的簡單表:

CREATE TABLE [testSchema].[table_name] (
    [table_name_Key] INT          NOT NULL,
    [Some_Column]    VARCHAR (10) NOT NULL,
    CONSTRAINT [PK_table_Name] PRIMARY KEY CLUSTERED ([table_name_Key] ASC, [Some_Column] ASC)
);


GO
EXECUTE sp_addextendedproperty @name = N'Caption', @value = 'Some_column is a required column.', @level0type = N'SCHEMA', @level0name = N'testSchema', @level1type = N'TABLE', @level1name = N'table_name', @level2type = N'COLUMN', @level2name = N'Some_Column';

以與上述類似的方式定義您的表,按構建並解決錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM