常见操作SQL语句及兼容性

通过TDS端口的常见操作

操作类别 SQL示例
系统查询 查询版本 SELECT @@version;
查询数据库信息 SELECT * FROM sys.databases;
数据库操作 创建数据库 CREATE DATABASE testdb;*说明*迁移模式为*single-db*时,只支持创建一个数据库,如果您已创建了一个数据库,则无法再次创建。
查询数据库 SELECT * FROM sys.databases WHERE name = 'testdb';
切换数据库 USE testdbGOSELECT db_name();
删除数据库 DROP DATABASE testdb;
Schema操作 创建Schema CREATE SCHEMA sch_demo;
查看Schema SELECT * FROM sys.schemas AS sch WHERE sch.name = 'sch_demo';
创建Schema下表 CREATE TABLE sch_demo.tb_demo(id int); SELECT sch.name AS schema_name, tb.name AS table_nameFROM sys.tables AS tb INNER JOIN sys.schemas AS sch ON tb.schema_id = sch.schema_idWHERE tb.name = 'tb_demo';
删除Schema *说明*如果Schema下存在表,需要先删除表后,再删除Schema。 DROP TABLE sch_demo.tb_demo;GO DROP SCHEMA sch_demo;GO
表操作 新建表 USE testdbGO CREATE TABLE dbo.tb_test( id int not null IDENTITY(1,1) PRIMARY KEY, name varchar(50))GO
查询表 SELECT sche.name AS schema_name, tb.name AS table_nameFROM sys.tables AS tb INNER JOIN sys.schemas AS sche ON tb.schema_id = sche.schema_idWHERE tb.name = 'tb_test';GO
新增字段 ALTER TABLE dbo.tb_test ADD col_added bigint null;GO
修改表字段 ALTER TABLE dbo.tb_test ALTER column col_added varchar(50);GO
删除表字段 ALTER TABLE dbo.tb_test DROP column col_added;GO
创建索引 CREATE INDEX ix_tb_test_name ON tb_test(name);GO
删除索引 DROP INDEX ix_tb_test_name ON tb_test;GO
数据库操作 INSERT INSERT INTO dbo.tb_testSELECT 'A' UNION ALLSELECT 'B';GO
SELECT SELECT * FROM dbo.tb_test;
UPDATE UPDATE TOP(1) dbo.tb_testSET name = 'A_updated';GO
DELETE DELETE TOP(1) FROM dbo.tb_test;GO SELECT * FROM dbo.tb_test;
存储过程 创建存储过程 USE testdbGO CREATE PROC dbo.UP_getDemoData( @id int)ASBEGIN SET NOCOUNT ON SELECT * FROM dbo.tb_test WHERE id = @idEND;GO
查看存储过程 SELECT *FROM sys.proceduresWHERE name = 'up_getdemodata';
执行存储过程 EXEC dbo.UP_getDemoData @id = 7;GO
删除存储过程 USE testdbGODROP PROC dbo.UP_getDemoDataGO

兼容性说明

说明

不支持的SQL操作如下:

查看表结构。

EXEC sp_help 'dbo.tb_test'

不支持在修改表字段时设置默认值NULL。

ALTER TABLE dbo.tb_test ALTER column col_added varchar(50) null;

GO

不支持重建索引,建议删除后,重新创建。

ALTER INDEX ix_tb_test_name ON tb_test REBUILD;

GO

不支持修改存储过程,建议删除后,重新创建。

USE testdb

GO

 

ALTER PROC dbo.UP_getDemoData(

  @id int

)

AS

BEGIN

  SET NOCOUNT ON

  SELECT *

  FROM dbo.tb_test

  WHERE id >= @id

END;

GO

不支持执行计划(showplan_xml)。

SET showplan_xml ON

SELECT * from tb_test;