GVKun编程网logo

sql-server – DACPAC和SQL序列(sql server序列使用)

4

如果您想了解sql-server–DACPAC和SQL序列和sqlserver序列使用的知识,那么本篇文章将是您的不二之选。我们将深入剖析sql-server–DACPAC和SQL序列的各个方面,并为

如果您想了解sql-server – DACPAC和SQL序列sql server序列使用的知识,那么本篇文章将是您的不二之选。我们将深入剖析sql-server – DACPAC和SQL序列的各个方面,并为您解答sql server序列使用的疑在这篇文章中,我们将为您介绍sql-server – DACPAC和SQL序列的相关知识,同时也会详细的解释sql server序列使用的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

sql-server – DACPAC和SQL序列(sql server序列使用)

sql-server – DACPAC和SQL序列(sql server序列使用)

我有一个Visual Studio数据库项目(DACPAC),其中包含许多sql序列.但是,当我部署DACPAC时,它总是将序列值重置为Create脚本中包含的默认值(在本例中为1).例如
CREATE SEQUENCE [dbo].[MySequence]
AS INT
START WITH 1
INCREMENT BY 1;

任何人都可以建议一种方法来指示DACPAC忽略序列起始值,或者某种方式让DACPAC恢复正确的值作为部署后的步骤吗?

提前致谢

解决方法

当使用SSDT工具时,这是序列的已知问题.有几种解决方案.

>发布时忽略序列对象.
>使用自定义部署筛选器忽略起始值.
>在部署到live之后,使用sp_sequence_get_range而不是RESTART WITH来递增计数器.

1.发布时忽略序列对象

这是最简单的选项,但最尴尬,因为这意味着您必须手动部署序列.
将以下内容添加到发布配置文件中

<ExcludeSequences>True</ExcludeSequences>

或者,从命令行

/p:ExcludeObjectType=Sequences

2.使用自定义部署筛选器

首先下载AgileSqlClub’s部署过滤器.
然后将以下内容添加到部署配置文件中:

<AdditionalDeploymentContributors>AgilesqlClub.DeploymentFilterContributor</AdditionalDeploymentContributors>
<AdditionalDeploymentContributorArguments>sqlPackageFilter=IgnoreName(Order_No_Seq)</AdditionalDeploymentContributorArguments>

或者,从命令行:

/p:AdditionalDeploymentContributors=AgilesqlClub.DeploymentFilterContributor
/p:AdditionalDeploymentContributorArguments="sqlPackageFilter=IgnoreName(Order_No_Seq)"

3.使用sp_sequence_get_range

为此而不是在生产服务器上使用RESTART WITH来更改起始值,请使用:

DECLARE @range_first_value sql_VARIANT;
EXEC sp_sequence_get_range
    @sequence_name = 'MySequence',@range_size = 1000,@range_first_value = @range_first_value OUTPUT;

这样,起始值将始终与部署脚本中的预期值匹配.

资源

> Connect issue – 这个链接已经死了
> Forum post discussing the issue
> MSDN for sp_sequence_get_range
> User Voice/Azure Feedback issue – 替换连接问题 – 标记为计划2018-03-16

Access和SQL Server里面的SQL语句的不同之处

Access和SQL Server里面的SQL语句的不同之处

我的感觉是,Accees数据库虽然可以称得上是小型的关系型数据库,并且也是使用的结构化查询语言SQL,但它的语法(主要体现在函数上),却类似vbscript的语法,我想,这应该和Access属于Office系列有关,基于它的开发和应用,自然就与VBA扯上关系,因而Access的函数库也就是VBA的函数库,而非SQL函数库。下面,我们来具体看下Access和SQL Server在查询语句的编写上具体的不同。

一、数据类型转换:

  1. Access: SELECT ''调查''+CStr(Did) as diaocha FROM CZdengji
  2. SQL Server: select artid,''调查''+Cast(listid As varchar) as did from kingart where artdate>=getdate()

      Access中SQL查询的数据类型转换有很多函数,每一个函数都可以强制将一个表达式转换成某种特定数据类型。具体如下:CBool(expression) 、CByte(expression) 、CCur(expression) 、CDate(expression) 、CDbl(expression) 、CDec(expression) 、CInt(expression) 、CLng(expression) 、CSng(expression) 、CStr(expression) 、CVar(expression) 、CStr(expression),相信不用说明,大家也看得懂这各种转换符的意思。

二、IIF函数(ACCESS专用)

  1. Access: SELECT Id,IIF(Isfinished=1,''已完成'',''进行中''),Name,Diaocharen FROM CZdiaocha ORDER BY Isfinished ASC
  2. SQL Server 的写法就相对更多,可以自定义函数,也可以使用case语句,如select Id,case Isfinished when 1 then ''已完成''
    when 0 then ''进行中''  end,Name,Diaocharen FROM CZdiaocha ORDER BY Isfinished ASC

三、DISTINCT关键字用法: Access里面distinct(expression)的用法单一, expression 只能为指定字段,而不能为表达式,SQL Server则不同, expression 除了可以为单个字段,也可以为一个子查询等复杂表达式。

四、日期格式化

  1. Access: 使用format()函数,SELECT TOP 5 arttitle,format(artdate,''YY-MM-DD'') as arttime FROM kingart WHERE listid=9,这里使用format()函数,指定artdate(日期型)查询出来的格式为YY-MM-DD。
  2. SQL Server: 使用convert()函数,select Id,lanmu,title,content, convert(varchar(10),updatetime ,120) as update_time from news,这里的120,是指定格式为YY-MM-DD,如果是其他数字(101-120),就是其他的格式。

其它一些常用的SQL语句集锦

  1. SELECT Top 5 * From Food WHERE Fid not in(Select top 5 Fid FROM Food) //查询第5到第10条记录
  2. delete from Food where charindex(''2007'',uptime)>0 or charindex(''2008'', uptime )>0  //删除Food表中uptime列包含有2007或2008的记录,即删除时间为2007年和2008年的更新记录
  3. select Id,lanmu,title,content, convert(varchar(10),updatetime ,120) as update_time from news  // SQL Server里面的convert函数,转换成 varchar(10)类型, 120为指定转换后的格式。
  4. select Mealtype as 餐别,Fname as 食物名称,sum(rjjingshisz)/2 as 人均净食生重总和 from CZdengji WHERE Did=6 group by Mealtype,Fname    //分组查询,GROUP BY的本意就是重复的字段合为一,对应的信息,进行汇总(count、sum等运算)
  5. Select Count(ID) from Flow where convert(varchar(21),visittime,120) like ''2007-01-26% '' ,日期型数据模糊查询。
  6. select * from (''MSDASQL'',''DRIVER={SQL Server};SERVER=服务器名字;UID=对端数据库的账号;PWD=对端密码'', 对端数据库.权限者.对端的表) as 表   //跨服务器查询
您可能感兴趣的文章:
  • SQL Server中的数据复制到的Access中的函数
  • Access转Sql Server问题 实例说明
  • Sql Server、Access数据排名的实现方法(例如:成绩排名)
  • SQLServer与Access常用SQL函数区别
  • SQL 随机查询 包括(sqlserver,mysql,access等)
  • 在ACCESS和SQL Server下Like 日期类型查询区别
  • asp.net下Oracle,SQL Server,Access万能数据库通用类
  • SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
  • 将Access数据库中数据导入到SQL Server中的详细方法实例
  • 八步解决ACCESS自动编号问题(将SQL SERVER 2000数据库,转换为ACCESS数据库)
  • 将ACCESS数据库迁移到SQLSERVER数据库两种方法(图文详解)
  • sqlserver,sqlite,access数据库链接字符串整理
  • 自己动手把ACCESS转换到SQLSERVER的方法
  • Access 导入到SQL Server 2005的方法小结
  • JavaScript使用ActiveXObject访问Access和SQL Server数据库
  • SQL Server数据复制到的Access两步走

access和SqlServer 关于时间的SQL语句比较

access和SqlServer 关于时间的SQL语句比较


1.1算出日期差: 
1.access:       datediff('d',fixdate,getdate()) 
2.sqlserver:    datediff(day,getdate())
 ACCESS实例:    select * from table where data=datediff('d',getdate()) 
sqlserver实例: select * from table where data=datediff(day,getdate()) 
1.2算出时间差: 
1.access:       datediff('h',getdate()) 
2.sqlserver:    datediff(Hour,'2004-12-10',getdate()) 
ACCESS实例:    select DATEDIFF('h',HMD,getdate()) 
sqlserver实例: select datediff(Hour,getdate()) 
1.3算出月份差: 
1.access:       datediff('m',getdate()) 
2.sqlserver:    datediff(Month,getdate()) 
ACCESS实例:    select DATEDIFF('m',getdate()) 
sqlserver实例: select datediff(Month,getdate()) 
 
2、日期变量 
1.access:       #"&data&"# 
2.sqlserver:    '"&data&"' 
ACCESS实例:    select * from table where data=#"&data&"# 
sqlserver实例: select * from table where data='"&data&"' 
3、是否 
1.access:       not finished 
2.sqlserver:    finished=0 
ACCESS实例:    select * from table where not finished 
sqlserver实例: select * from table where finished=0 
4、求余数 
1.access:       a mod b=100 
2.sqlserver:    a % b =100 
ACCESS实例:    select   a mod b=100 from table where not finished 
sqlserver实例: select a % b =100 from table where finished=0 
5、获取当天日期 
1.access:       Now() 
2.sqlserver:    getdate() 

DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)

DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)

  • 1. 引言
  • 2. 配置数据库链接
  • 3. 引入数据库驱动
  • 4. 手动初始化数据库
  • 5. 改写SQL
  • 6. 其他
  • 7. 参考

1. 引言

DataGear默认使用Derby数据库作为系统的元数据库,至于待分析的业务库则支持MySQL、SQL Server等。
Derby数据库足以支持系统的数据集、图表、看板等对象的管理,且不需要安装数据库服务,但由于目前DataGear不支持单点登录集成,因此项目上为了便于用户认证信息的统一管理,以及DataGear数据库的备份等,将Derby变更为SQL Server,与待分析的业务数据库一致。
在变更操作过程中,参考了DataGear官方说明,操作时遇到一些坑,记录下来分享与大家。
不少内容是引用官方文档的,直接抄来了。
datagear架构图
gitee地址:
https://gitee.com/datagear/datagear

2. 配置数据库链接

在config/application.properties添加datasource.driverClassName、datasource.url、datasource.username、datasource.password配置项,配置新数据库连接。

  • MySQL
datasource.driverClassName=com.mysql.cj.jdbc.Driverdatasource.url=jdbc:mysql://localhost:3306/datageardatasource.username=datageardatasource.password=datagear
  • SQL Server
datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriverdatasource.url=jdbc:sqlserver://192.168.1.30:1433;SelectMethod=cursor;DatabaseName=datageardatasource.username=datageardatasource.password=datagear

3. 引入数据库驱动

在根目录下新建lib包,将JDBC驱动(sqljdbc4-4.0.jar)放入。
修改startup.bat为

java -Xbootclasspath/a:lib/sqljdbc4-4.0.jar -jar datagear-2.4.0.jar

4. 手动初始化数据库

此时运行startup,datagear将会按照配置的链接访问数据库,如果数据库配置以及驱动无误,则会进入下一步。
接着datagear检测到没有数据库,此时会自动创建数据库,使用的SQL是打包在jar文件中的,源码库路径为datagear-management/src/main/resources/org/datagear/management/ddl/datagear.sql。此SQL为Derby数据库,因此将执行失败。
扩展:可以用SQL server等数据库脚本替换了源码sql并打包,分发到项目上,项目上直接执行即可创建数据库,类似于Activity等的部署。
接着需要先改写Derby建库脚本为SQL server,改写后执行SQL,然后设置版本号,然后运行startup.bat即可。
坑:如果是新环境,DATAGEAR_VERSION(版本)表中的记录为空,此时按照官方说明执行SQL设置版本号将不起效。

UPDATE DATAGEAR_VERSION SET VERSION_VALUE=''当前版本号''

或许Derby支持数据不存在则insert的update骚操作,对于SQL server需要insert下。
此坑造成的效果时,启动时dategear查询到当前已有数据库,但版本为null,因此需要升级,且从头升级,于是执行打包的SQL。

5. 改写SQL

DataGear的(升级)SQL脚本非常漂亮,每个版本不论是否有SQL更新,都写有注释,供手工和自动执行时参考。

-------------------------------------------version[1.6.1], DO NOT EDIT THIS LINE!-----------------------------------------

如果是新环境,则需要从头执行到尾,如果是升级,则找到起始版本执行后边的SQL即可。

以下列举Derby转SQL server的几个常见操作。

  • TIMESTAMP,巨坑,SQL server也有该数据类型,但意义不一样,改为datetime
  • CURRENT_TIMESTAMP,当前时间,修改为(getdate()),获取当前时间
  • 函数按照SQLserver语法改写,变量填写@即可。函数实现Derby不支持的replace、取余操作,datagear采用了java扩展,SQL server直接用系统函数、操作符即可,不需要.net扩展
  • DATAGEAR_REPLACEREGEX,按官方说明,不必理睬即可,该正则表达式替换新版本中已废弃
  • RENAME COLUMN ,重命名列,按照SQL server语法替换
  • RENAME TABLE ,重命名表,按照SQL server语法替换
  • 表中加字段,ADD COLUMN 去掉column
  • ALTER COLUMN DS_TYPE SET NOT NULL;,修改列非空,SQL server需要找到原来的类型,一并修改。
  • VARCHAR(10000),SQL server支持到8K,修改为VARCHAR(8000)

修改后的SQL Server版SQL为:

-------------------------------------------version[1.0.0], DO NOT EDIT THIS LINE!-----------------------------------------if not exists (select * from sysobjects where name=''DATAGEAR_VERSION'' and xtype=''U'')CREATE TABLE DATAGEAR_VERSION (	VERSION_MAJOR VARCHAR(50),	VERSION_MINOR VARCHAR(50),	VERSION_REVISION VARCHAR(50),	VERSION_BUILD VARCHAR(50));goif not exists (select * from sysobjects where name=''DATAGEAR_USER'' and xtype=''U'')CREATE TABLE DATAGEAR_USER(	USER_ID VARCHAR(50) NOT NULL,	USER_NAME VARCHAR(50) NOT NULL,	USER_PASSWORD VARCHAR(200) NOT NULL,	USER_REAL_NAME VARCHAR(100),	USER_EMAIL VARCHAR(200),	USER_IS_ADMIN VARCHAR(20),	USER_CREATE_TIME DATETIME,	PRIMARY KEY (USER_ID),	UNIQUE (USER_NAME));go--alter table DATAGEAR_USER alter column USER_CREATE_TIME datetime;--无法更改列 ''USER_CREATE_TIME'',因为它是 ''timestamp''。--alter table DATAGEAR_USER drop column USER_CREATE_TIME;--alter table DATAGEAR_USER add USER_CREATE_TIME DATETIME;--the password is ''admin''INSERT INTO DATAGEAR_USER VALUES(''admin'', ''admin'', ''4c6d8d058a4db956660f0ee51fcb515f93471a086fc676bfb71ba2ceece5bf4702c61cefab3fa54b'', '''', '''', ''true'', default);if not exists (select * from sysobjects where name=''DATAGEAR_SCHEMA'' and xtype=''U'')CREATE TABLE DATAGEAR_SCHEMA(	SCHEMA_ID VARCHAR(50) NOT NULL,	SCHEMA_TITLE VARCHAR(100) NOT NULL,	SCHEMA_URL VARCHAR(200) NOT NULL,	SCHEMA_USER VARCHAR(200),	SCHEMA_PASSWORD VARCHAR(200),	SCHEMA_CREATE_USER_ID VARCHAR(50),	SCHEMA_CREATE_TIME DATETIME,	SCHEMA_SHARED VARCHAR(20),	DRIVER_ENTITY_ID VARCHAR(100),	PRIMARY KEY (SCHEMA_ID));--alter table DATAGEAR_SCHEMA drop column SCHEMA_CREATE_TIME;--alter table DATAGEAR_SCHEMA add SCHEMA_CREATE_TIME DATETIME;-------------------------------------------version[1.1.0], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.1.1], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.2.0], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.3.0], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.4.0], DO NOT EDIT THIS LINE!-----------------------------------------if not exists (select * from sysobjects where name=''DATAGEAR_ROLE'' and xtype=''U'')CREATE TABLE DATAGEAR_ROLE(	ROLE_ID VARCHAR(50) NOT NULL,	ROLE_NAME VARCHAR(100) NOT NULL,	ROLE_DESCRIPTION VARCHAR(200),	ROLE_ENABLED VARCHAR(10) NOT NULL,	ROLE_CREATE_TIME DATETIME,	PRIMARY KEY (ROLE_ID));--alter table DATAGEAR_ROLE drop column ROLE_CREATE_TIME;--alter table DATAGEAR_ROLE add ROLE_CREATE_TIME DATETIME;if not exists (select * from sysobjects where name=''DATAGEAR_ROLE_USER'' and xtype=''U'')CREATE TABLE DATAGEAR_ROLE_USER(	RU_ID VARCHAR(50) NOT NULL,	RU_ROLE_ID VARCHAR(50) NOT NULL,	RU_USER_ID VARCHAR(50) NOT NULL,	PRIMARY KEY (RU_ID));ALTER TABLE DATAGEAR_ROLE_USER ADD FOREIGN KEY (RU_ROLE_ID) REFERENCES DATAGEAR_ROLE (ROLE_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_ROLE_USER ADD FOREIGN KEY (RU_USER_ID) REFERENCES DATAGEAR_USER (USER_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_ROLE_USER ADD CONSTRAINT UK_RU_ROLE_USER_ID UNIQUE (RU_ROLE_ID, RU_USER_ID);if not exists (select * from sysobjects where name=''DATAGEAR_AUTHORIZATION'' and xtype=''U'')CREATE TABLE DATAGEAR_AUTHORIZATION(	AUTH_ID VARCHAR(50) NOT NULL,	AUTH_RESOURCE VARCHAR(200) NOT NULL,	AUTH_RESOURCE_TYPE VARCHAR(50) NOT NULL,	AUTH_PRINCIPAL VARCHAR(200) NOT NULL,	AUTH_PRINCIPAL_TYPE VARCHAR(50) NOT NULL,	AUTH_PERMISSION SMALLINT NOT NULL,	AUTH_ENABLED VARCHAR(10) NOT NULL,	AUTH_CREATE_TIME DATETIME,	AUTH_CREATE_USER_ID VARCHAR(50),	PRIMARY KEY (AUTH_ID));--alter table DATAGEAR_AUTHORIZATION drop column AUTH_CREATE_TIME;--alter table DATAGEAR_AUTHORIZATION add AUTH_CREATE_TIME DATETIME;go--自定义REPLACE函数--srcStr 原始字符串--oldStr 要替换的旧子串--newStr 要替换的新子串CREATE FUNCTION DATAGEAR_REPLACE(@srcStr VARCHAR(500), @oldStr VARCHAR(100), @newStr VARCHAR(100)) RETURNS VARCHAR(500)asbegin--PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME ''org.datagear.management.util.DerbyFunctionSupport.replace'';	return replace(@srcStr,@oldStr,@newStr);end;goif not exists (select * from sysobjects where name=''DATAGEAR_SQL_HISTORY'' and xtype=''U'')CREATE TABLE DATAGEAR_SQL_HISTORY(	SQLHIS_ID VARCHAR(50) NOT NULL,	SQLHIS_SQL VARCHAR(5000) NOT NULL,	SQLHIS_SCHEMA_ID VARCHAR(50) NOT NULL,	SQLHIS_USER_ID VARCHAR(50) NOT NULL,	SQLHIS_CREATE_TIME DATETIME DEFAULT GETDATE(),	PRIMARY KEY (SQLHIS_ID));--alter table DATAGEAR_SQL_HISTORY drop column SQLHIS_CREATE_TIME;--alter table DATAGEAR_SQL_HISTORY add SQLHIS_CREATE_TIME DATETIME;ALTER TABLE DATAGEAR_SQL_HISTORY ADD FOREIGN KEY (SQLHIS_SCHEMA_ID) REFERENCES DATAGEAR_SCHEMA (SCHEMA_ID) ON DELETE CASCADE;-------------------------------------------version[1.5.0], DO NOT EDIT THIS LINE!-------------------------------------------SQL数据集if not exists (select * from sysobjects where name=''DATAGEAR_SQL_DATA_SET'' and xtype=''U'')CREATE TABLE DATAGEAR_SQL_DATA_SET(	DS_ID VARCHAR(50) NOT NULL,	DS_NAME VARCHAR(100) NOT NULL,	DS_SCHEMA_ID VARCHAR(50) NOT NULL,	DS_SQL VARCHAR(1000) NOT NULL,	DS_CREATE_USER_ID VARCHAR(50),	DS_CREATE_TIME DATETIME,	PRIMARY KEY (DS_ID));-- alter table DATAGEAR_DATA_SET drop column DS_CREATE_TIME;-- alter table DATAGEAR_DATA_SET add DS_CREATE_TIME DATETIME;--该字段后需要删除,约束将限制其删除--ALTER TABLE DATAGEAR_SQL_DATA_SET ADD FOREIGN KEY (DS_SCHEMA_ID) REFERENCES DATAGEAR_SCHEMA (SCHEMA_ID);--数据集属性if not exists (select * from sysobjects where name=''DATAGEAR_DATA_SET_PROP'' and xtype=''U'')CREATE TABLE DATAGEAR_DATA_SET_PROP(	PROP_DS_ID VARCHAR(50) NOT NULL,	PROP_NAME VARCHAR(100) NOT NULL,	PROP_TYPE VARCHAR(50) NOT NULL,	PROP_LABEL VARCHAR(100),	PROP_ORDER INTEGER);ALTER TABLE DATAGEAR_DATA_SET_PROP ADD FOREIGN KEY (PROP_DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_DATA_SET_PROP ADD CONSTRAINT UK_DS_PROP_DS_ID_NAME UNIQUE (PROP_DS_ID, PROP_NAME);--数据集参数if not exists (select * from sysobjects where name=''DATAGEAR_DATA_SET_PAR'' and xtype=''U'')CREATE TABLE DATAGEAR_DATA_SET_PAR(	PAR_DS_ID VARCHAR(50) NOT NULL,	PAR_NAME VARCHAR(100) NOT NULL,	PAR_TYPE VARCHAR(100) NOT NULL,	PAR_REQUIRED VARCHAR(10),	PAR_DEFAULT_VALUE VARCHAR(200),	PAR_ORDER INTEGER);ALTER TABLE DATAGEAR_DATA_SET_PAR ADD FOREIGN KEY (PAR_DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE; ALTER TABLE DATAGEAR_DATA_SET_PAR ADD CONSTRAINT UK_DS_PAR_DS_ID_NAME UNIQUE (PAR_DS_ID, PAR_NAME);--数据集输出if not exists (select * from sysobjects where name=''DATAGEAR_DATA_SET_EXPT'' and xtype=''U'')CREATE TABLE DATAGEAR_DATA_SET_EXPT(	EXPT_DS_ID VARCHAR(50) NOT NULL,	EXPT_NAME VARCHAR(100) NOT NULL,	EXPT_TYPE VARCHAR(50) NOT NULL,	EXPT_ORDER INTEGER);ALTER TABLE DATAGEAR_DATA_SET_EXPT ADD FOREIGN KEY (EXPT_DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_DATA_SET_EXPT ADD CONSTRAINT UK_DS_EXPT_DS_ID_NAME UNIQUE (EXPT_DS_ID, EXPT_NAME);--图表if not exists (select * from sysobjects where name=''DATAGEAR_HTML_CHART_WIDGET'' and xtype=''U'')CREATE TABLE DATAGEAR_HTML_CHART_WIDGET(	HCW_ID VARCHAR(50) NOT NULL,	HCW_NAME VARCHAR(100) NOT NULL,	HCW_PLUGIN_ID VARCHAR(100) NOT NULL,	HCW_UPDATE_INTERVAL INTEGER,	HCW_CREATE_USER_ID VARCHAR(50),	HCW_CREATE_TIME DATETIME,	PRIMARY KEY (HCW_ID));-- alter table DATAGEAR_HTML_CHART_WIDGET drop column HCW_CREATE_TIME;-- alter table DATAGEAR_HTML_CHART_WIDGET add HCW_CREATE_TIME DATETIME;--图表-数据集信息if not exists (select * from sysobjects where name=''DATAGEAR_HCW_DS'' and xtype=''U'')CREATE TABLE DATAGEAR_HCW_DS(	HCW_ID VARCHAR(50) NOT NULL,	DS_ID VARCHAR(50) NOT NULL,	DS_PROPERTY_SIGNS VARCHAR(500),	DS_ORDER INTEGER);ALTER TABLE DATAGEAR_HCW_DS ADD FOREIGN KEY (HCW_ID) REFERENCES DATAGEAR_HTML_CHART_WIDGET (HCW_ID) ON DELETE CASCADE;ALTER TABLE DATAGEAR_HCW_DS ADD FOREIGN KEY (DS_ID) REFERENCES DATAGEAR_SQL_DATA_SET (DS_ID) ON DELETE CASCADE;--看板if not exists (select * from sysobjects where name=''DATAGEAR_HTML_DASHBOARD'' and xtype=''U'')CREATE TABLE DATAGEAR_HTML_DASHBOARD(	HD_ID VARCHAR(50) NOT NULL,	HD_NAME VARCHAR(100) NOT NULL,	HD_TEMPLATE VARCHAR(100) NOT NULL,	HD_TEMPLATE_ENCODING VARCHAR(50),	HD_CREATE_USER_ID VARCHAR(50),	HD_CREATE_TIME DATETIME,	PRIMARY KEY (HD_ID));-- alter table DATAGEAR_HTML_DASHBOARD drop column HD_CREATE_TIME;-- alter table DATAGEAR_HTML_DASHBOARD add HD_CREATE_TIME DATETIME;-------------------------------------------version[1.6.0], DO NOT EDIT THIS LINE!-------------------------------------------ALTER TABLE DATAGEAR_HTML_DASHBOARD ALTER COLUMN HD_TEMPLATE SET DATA TYPE VARCHAR(500);-------------------------------------------version[1.6.1], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.7.0], DO NOT EDIT THIS LINE!-------------------------------------------自定义正则REPLACE函数,目前仅用于下面修改数据标记--srcStr 原始字符串--oldStr 要替换的正则表达式--newStr 要替换的新子串--CREATE FUNCTION DATAGEAR_REPLACEREGEX(srcStr VARCHAR(500), oldStr VARCHAR(100), newStr VARCHAR(100)) RETURNS VARCHAR(500)--PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME ''org.datagear.management.util.DerbyFunctionSupport.replaceRegex''; --扩充SQL字段ALTER TABLE DATAGEAR_SQL_DATA_SET ALTER COLUMN DS_SQL VARCHAR(8000);-------------------------------------------version[1.8.0], DO NOT EDIT THIS LINE!-------------------------------------------默认值字段改为描述字段--RENAME COLUMN DATAGEAR_DATA_SET_PAR.PAR_DEFAULT_VALUE TO PAR_DESC;exec sp_rename ''DATAGEAR_DATA_SET_PAR.PAR_DEFAULT_VALUE'',''PAR_DESC'' --移除数据集输出项表DROP TABLE DATAGEAR_DATA_SET_EXPT;--扩充图表数据集数据标记列ALTER TABLE DATAGEAR_HCW_DS ALTER COLUMN DS_PROPERTY_SIGNS VARCHAR(1000);--添加图表数据集别名列ALTER TABLE DATAGEAR_HCW_DS ADD DS_ALIAS VARCHAR(100);--添加图表数据集参数值列ALTER TABLE DATAGEAR_HCW_DS ADD DS_PARAM_VALUES VARCHAR(1000);-------------------------------------------version[1.8.1], DO NOT EDIT THIS LINE!------------------------------------------------------------------------------------version[1.9.0], DO NOT EDIT THIS LINE!----------------------------------------- -------------------------------------------version[1.10.0], DO NOT EDIT THIS LINE!-------------------------------------------添加数据集参数输入框类型ALTER TABLE DATAGEAR_DATA_SET_PAR ADD PAR_INPUT_TYPE VARCHAR(50);--添加数据集参数输入框载荷ALTER TABLE DATAGE

Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server

Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server

我将发表评论作为答案。

Azure SQL数据库

这是一项服务,可为您管理数据库的艰苦工作。 包括:

  • 备份和还原
  • 高可用性
  • 数据复制
  • 缩放
  • 选择合适的硬件
  • 始终保持最新状态,如果推出新版本,则可以提高兼容性级别,并可以使用新功能
  • 安全性
  • Azure AD集成
  • 索引建议
  • 弹性池
  • 天蓝色支持
  • 许可

您在Azure SQL数据库中无法做的事情

  • CLR:加载可从SQL Server执行的自定义.NET代码。
  • 跟踪标记
  • SQL代理作业(Elastic database jobs在预览中)
  • 更改数据捕获(cdc)
  • 跨数据库事务
  • 数据库邮件
  • 附加数据库
  • BACKUPRESTORE语句
  • 更改排序规则
  • 镜像
  • 快照
  • 一些DBCC语句
  • 一些DMV的
  • 链接服务器
  • 批量导入时的最小日志记录
  • OpenQuery / OpenDataSource
  • 资源总监
  • 服务经纪人
  • ...

请参见this comparison between Azure SQL Databases and Azure SQL Managed instances.

List of T-SQL differences

容器化的SQL Server

您只能运行Linux版本的SQL Server。其中仍然存在大量问题。 Azure照顾的所有事情,您需要做好自己的工作。它很新,所以您可能遇到一些以前从未见过的问题,但是社区正在不断发展。您还需要购买SQL Server许可证。

何时应使用容器化的SQL Server? 您想与云无关,能够切换云提供商。

目前,我不想在容器化的SQL Server上运行生产工作负载。当SQL Server Linux变得成熟时,这将会改变。

关于sql-server – DACPAC和SQL序列sql server序列使用的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Access和SQL Server里面的SQL语句的不同之处、access和SqlServer 关于时间的SQL语句比较、DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)、Kubernetes SQL Server或Azure SQL Server PaaS Azure SQL数据库容器化的SQL Server的相关信息,请在本站寻找。

本文标签: