Create 命令 (TMSL)

适用于:SQL Server 2016 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

创建指定的 对象和指定的所有后代对象。 如果该对象已存在,该命令将引发错误。

请求

请求的结构因 对象而异。 作为父级的对象必须包含其所有子级,但不需要同级对象和父 () 的完整对象定义。

数据库对象 (TMSL) 将数据库添加到服务器。

{   
  "create": {   
    "database": {   
      "name": "AdventureworksDW2016",   
      "description": "<description>"   
    }   
  }   
}  

DataSources 对象 (TMSL)

{  
  "create": {  
    "parentObject": {  
      "database": "AdventureworksDW2016"  
    },  
    "dataSource": {  
      "name": "SqlServer localhost AdventureworksDW2016",  
      "connectionString": "Provider=SQLNCLI11;Data Source=localhost;Initial Catalog=AdventureworksDW2016;Integrated Security=SSPI;Persist Security Info=false",  
      "impersonationMode": "impersonateAccount",  
      "account": "<account name>",  
      "annotations": [  
        {  
          "name": "ConnectionEditUISource",  
          "value": "SqlServer"  
        }  
      ]  
    }  
  }  
}  

分区对象 (TMSL) 将分区添加到父表对象。

{  
  "create": {  
    "parentObject": {  
      "database": "AdventureWorksTabular1200",  
      "table": "Date"  
    },  
    "partition": {  
      "name": "Date 2",  
      "source": {  
        "query": "SELECT [dbo].[DimDate].* FROM [dbo].[DimDate]",  
        "dataSource": "SqlServer localhost AdventureworksDW2016"  
      }  
    }  
  }  
}  

ROLES 对象 (TMSL) 至少将角色添加到数据库,但不添加成员身份或筛选器。

{  
  "create": {  
    "parentObject": {  
      "database": "AdventureWorksDW2016"  
    },  
    "role": {  
      "name": "DataReader",  
      "modelPermission": "read"  
    }  
  }  
}  

Database 对象外,正在创建的对象是指定 parentObject 的子级。 Database 对象的父对象始终是 Server 对象。

假定服务器来自上下文。 例如,如果从 Management Studio 或 AMO PowerShell 运行脚本,则会在会话中指定服务器连接,或指定为参数。

响应

命令成功时返回空结果。 否则,将返回 XMLA 异常。

示例

示例 1 - 添加指定成员身份和筛选器的角色。

{   
   "create":{   
      "parentObject":{   
         "database":"AdventureWorksTabular1200"  
      },  
      "role":{  
         "name":"DataReader",  
         "modelPermission":"read",  
         "members":[   
            {  
               "memberName": "account-01",  
               "memberId":"S-1-5-21-1111111111-2222222222-33333333-444444"  
            },  
            {   
               "memberName": "account-02",  
               "memberId":"S-2-5-21-1111111111-2222222222-33333333-444444"  
            }  
         ],  
         "tablePermissions":[   
            {   
               "name":"Date",  
               "filterExpression":"CalendarYear('2011')"  
            }  
         ]  
      }  
   }  
}  

使用情况 (终结点)

此命令元素用于通过 XMLA 终结点 (XMLA) 调用的 Execute 方法的语句中,以下列方式公开:

  • 作为 SQL Server Management Studio (SSMS) 中的 XMLA 窗口

  • 作为 invoke-ascmd PowerShell cmdlet 的输入文件

  • 作为 SSIS 任务或SQL Server 代理作业的输入

可以从 SSMS 为此命令生成现成的脚本。 例如,可以右键单击现有数据库 >“脚本脚本>数据库”作为>“创建到”。