常见操作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;