SQL Server2016常用基础命令

SQL Server2016常用基础命令(持续更新。。。)



1. 查询指定表中所有字段名

select name from syscolumns where id = object_id(‘表名’)

2. 查询每张表中所有字段名:

select COLUMN_NAME from INFORMATION_SCHEMA.Columns where table_name=‘表名称’ and TABLE_CATALOG=‘数据库名称’;

3. 查询指定模式、表的ID

查询指定模式对应id:SELECT SCHEMA_ID sch_name;
查询指定表的id:SELECT OBJECT_ID(N’datebase_name.sch_name.tab_name’) ;

4. 查看端口号

使用下面的SQL Command就可以查看SQL SERVER的端口号:
在这里插入图片描述

5. 查询数据库中所有表名称

select table_name from information_schema.tables where TABLE_CATALOG=‘数据库名称’;(包含视图)

select table_name from information_schema.tables where TABLE_CATALOG=‘数据库名称’ and table_type = ‘BASE TABLE’

6. 查询指定表的主键

SELECT COLUMN_NAME AS PK_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + ‘.’ + QUOTENAME(CONSTRAINT_NAME)), ‘IsPrimaryKey’) = 1
AND TABLE_NAME = ‘tab_name’ AND TABLE_SCHEMA = ‘sch_name’

7. 使用select语句查询到的数据建表

oracle: create table table1 as select * from table2;
sql sever:select * into Student_backup from Student;
注意:Student_backup为新建的表,需在当前模式下不存在

8. rowid(%%physloc%%)

  • SQL Server的物理地址为%%physloc%%,当使用odbc进行数据库连接时,%%physloc%%不能作为输入参数进行绑定(SQLBindParameter);可以作为输出参数进行绑定(SQLBindCol)。
  • 当插入一条数据时,无法直接返回该行数据的%%physloc%%。

9. 获取SQL Server数据行的物理地址信息

select *, %%physloc%% as rowid from dbTest;

10. 占位符

占位符通常表示为问好(?)或冒号加数字(:1, :2等)。
注意:我在使用ODBC连接SQL Server数据库进行参数绑定时,占位符只能用?而使用冒号加数字会报错。

11. TEXT类型使用ODBC操作的注意事项

  • 流程为:SQLPrepare->SQLExcute->SQLFetch->SQLGetData
    注意:不能进行结果集绑定(SQLBindCol),否则会报错:07009 描述符索引无效
  • 使用odbc操作text或image(大字段),读取数据时的select语句中,大字段列需排在最后,否则无法获取数据。
    例如(正确):select col_1, col_2, col_lob from TABLE_1;
    例如(错误):select col_1, col_lob, col_2 from TABLE_1;
  • 时间类型:
  • 占位符:(?)或(:数字)。但使用SQLBindParameter时只能用?进行绑定,否则会失败。

12. SQL Server使用output

参考链接
MSDN

13. 为已存在的表添加列COL1,COL2

ALTER TABLE sch_name.tab_name ADD COL1 INT, COL2 VARCHAR(20);

14. SQL Server全类型建表语句

USE database_name
BEGIN TRANSACTION
CREATE TABLE sch_name.tab_name(C1 BIGINT);
INSERT INTO sch_name.tab_name(C1) VALUES(1111);
COMMIT;

类型名与插入值对应如下:

类型
BIGINT 1111
BINARY(50) 0X1189
BIT 1
CHAR(10) ‘A’
DATE ‘2023-01-01’
DATETIME ‘1905-06-23 00:00:00.000’
DATETIME2 ‘2020-06-23 09:36:37’
DATETIMEOFFSET ‘2007-05-06 12:35:27.1234567 +12:15’
DECIMAL(18, 0) 12.3
FLOAT 12.3
GEOGRAPHY geography :: STGeomFromText('POINT(55.9271035250276 -3.29431266523898))
GEOMETRY geometry :: STGeomFromText(‘POLYGON((-122.358 47.635, -122.348 47.649, -122.348, 47.648, -122.358 47.658, -122.358 47.635))’)
HIERARCHYID ‘/1/1/1’
IMAGE 0XFFFFFFFF
INT 1234
MONEY 1234
NCHAR(10) ‘ABCD’
NTEXT ‘ABCD’
NUMERIC(18, 0) 123.45
NVARCHAR(50) ‘ABCD’
SMALLDATETIME ‘1900-01-01’
SMALLINT 1
SMALLMONEY 1
SQL_VARIANT N’Rand’
TEXT ‘ABCD’
TIME(7) ‘2007-02-09 12:23:24’
TIMESTAMP DEFAULT
TINYINT 1
UNIQUEIDENTIFIER NEWID()
VARBINARY(50) 0x11
VARCHAR(50) ‘ABCD’
XML ‘<Person><ID>1</ID><NAME>“刘备”</NAME></Person>’

猜你喜欢

转载自blog.csdn.net/qq_39030233/article/details/130671321