1. computed column

alter table tableName add columnName as (cast(aColumn as float) / bColumn * 100) persisted; 

2. unique nullable

create unique nonclustered index[UniqueName] on [tableName]([columnNameA] asc) where ([columnNameA] is not null);

3. foreign key cascade delete

alter table [tableNameA] drop constraint [FKName];
alter table [tableNameA] with check add constraint [FKName] foreign key(foreignColumnName) references [tableNameB]([Id]) on delete cascade -- or on delete set null;

4. reset auto increment

dbcc checkident ('tableName') --check current
dbcc checkident ('tableName', reseed, 0); --reset to 0 , next is 1

5. create index

create nonclustered index [indexName] on [tableName]([columnName] asc);

6. select Ids to string list

declare @string nvarchar(MAX);
select @string = coalesce(@string + ', ', '') + cast(Id as nvarchar(5))
from Products;
select @string;

6.01. delay

declare @delayLength char(8) = '00:00:10';
waitfor delay @DelayLength

7. 大杂烩

use [simple];

drop proc dbo.performance_tuning_createRandomData;
-- create procedure
go
create proc dbo.performance_tuning_createRandomData
(
@name nvarchar(100),
@email nvarchar(100),
@outValue nvarchar(100) output
)
as
begin
set nocount on;
set @outValue = N'output ok';
declare @value nvarchar(max) = N'dada';
set @value = N'super';
--print @value;
insert into dbo.test (name,email) values (@name,@email);
end
go
go
declare @outValue nvarchar(100);
EXEC dbo.performance_tuning_createRandomData N'mk100', N'hengkeat87@gmail.com', @outValue output;
print @outvalue;
go -- create function
drop function dbo.performance_tuning_randomString;
go
create function dbo.performance_tuning_randomString
(
@name nvarchar(100)
)
returns nvarchar(50)
as
begin
return 'value';
end
go
select dbo.performance_tuning_randomString('dada'); -- declare and set value
go
declare @value nvarchar(max) = N'dada';
set @value = N'super';
-- select @value = count(*) from @table;
print @value;
go -- if else, begin end 不一定需要
go
declare @value2 nvarchar(30) = 'keatkeat2';
if(@value2 = 'keatkeat')
begin
print 'yes';
end
else
begin
print 'no';
end
go -- for loop
go
declare @i int = 0;
while(@i < 10)
begin
print @i;
set @i = @i + 1;
end
go -- random str + number and random number
go SELECT CONVERT(INT, 5 * RAND())
SELECT SUBSTRING(CONVERT(varchar(255), NEWID()), 0, 9)
select NEWID();
go -- create temp table and loop it
go
declare @temp table (name nvarchar(max), [index] int identity(1,1));
insert into @temp (name) values ('keatkeat'), ('xinyao'); declare @i int = 0;
declare @length int;
select @length = count(*) from @temp;
while(@i < @length)
begin
declare @value nvarchar(max)
select @value = name from @temp order by [index] offset @i rows fetch next 1 rows only;
print @value;
set @i = @i + 1;
end
go -- copy table to other table (cross database)
-- copy table to temp table
go
insert into test (email,[name]) select email,[name] from performance_tuning.dbo.Products where Id = 1; select Id,[name] into #temp from test order by Id;
declare @i int = 0;
declare @length int;
select @length = count(*) from #temp;
print @length;
while(@i < @length)
begin
declare @value nvarchar(max)
select @value = [name] from #temp order by Id offset @i rows fetch next 1 rows only;
print @value;
set @i = @i + 1;
end
drop table #temp;
go -- random enum
go
declare @values table([value] nvarchar(25));
insert into @values values ('John'),('Sarah'),('George');
select top 1 * from @values order by newid(); --or rand()
go

杂会 2

--dynamic sql
declare @table nvarchar(max) = 'table';
declare @value nvarchar(max) = 'value';
--input
declare @count int;
--output
declare @sql nvarchar(max) = N'select @count = count(*) from ' + @table + ' where column = @value';
exec sp_executesql
@sql,
N'@count INT OUT, @value nvarchar(max)',
@value = @value,
@count = @count output;
print @count; -- create temp table to store data
go
create table #tempTable
(
Id int
);
declare @sql nvarchar(max) = N'insert into #tempTable (Id) select Id from Questions';
EXEC(@sql);
select *
from #tempTable;
drop table #tempTable;
go

dynamic table name

declare @count int;
declare @sql nvarchar(max) = N'select @count = count(*) from ' + @name;
exec sp_executesql @sql, N'@count int out', @count out
print @count;

sql server 我常用的语句的更多相关文章

  1. MS SQL SERVER 2000 常用 Tran-SQL 语句

    一.创建数据库:create database mydb-创建数据库mydbon primary-在primary文件组中( name = mydb_data1,filename = 'd:\sql ...

  2. SQL Server中常用的SQL语句(转):

    SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...

  3. 处理SQL Server 异常常用步骤

    处理SQL Server 异常常用步骤 SQL Server常见的问题主要是SQL问题造成,常见的主要是CPU过高和阻塞. 一.CPU过高的问题 1.查询系统动态视图查询执行时间长的sql语句 WIT ...

  4. PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法

    逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...

  5. SQL Server Profiler监控执行语句

    SQL Server Profiler监控执行语句,这个功能主要用在实时的监控对数据库执行了什么操作,从而及时有效的跟踪系统的运行. 常规配置选项,名称.模板.保存到文件(可以复用). 事件选择,可以 ...

  6. SQL Server FOR XML PATH 语句的应用---列转行

    经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...

  7. SQL Server中的流控制语句

    begin···end 该语句定义sql代码块,通常在if和while语句中使用 declare @num int ; ; begin ; print 'hello word' end if···el ...

  8. 【SQL Server DBA】维护语句:删除并创建外键约束、获取建表语句

    原文:[SQL Server DBA]维护语句:删除并创建外键约束.获取建表语句 1.删除外键约束,建立外键约束 先建立3个表: /* drop table tb drop table tb_b dr ...

  9. SQL Server中常用的SQL语句

    1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例 ...

随机推荐

  1. glibc 2.x release note

    glibc 2.x release note,参见: https://sourceware.org/glibc/wiki/Glibc%20Timeline https://www.gnu.org/so ...

  2. python简说(二十八)json.path

    import jsonpathres = jsonpath.jsonpath(d,'$..name') 字典,模糊匹配

  3. fatal: [db01]: FAILED! => {"changed": false, "msg": "The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required."}

    centos7.5 使用ansible中的role安装mariadb创建用户报错 错误: [root@m01 roles]# ansible-playbook site.yml TASK [mysql ...

  4. Spring 学习——Spring框架结构、概念

    maven项目结构 记忆:在一个项目中,project下一层级时src,也就是源文件,所有需要进行编译的文件都是在这个目录下,其实也就是这一个目录,然后向下扩展.在src目录下,存在main文件夹,里 ...

  5. HDU 1848 Fibonacci again and again【博弈SG】

    Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n-1)+F( ...

  6. Netty实践与NIO原理

    一.阻塞IO与非阻塞IO Linux网络IO模型(5种) (1)阻塞IO模型 所有文件操作都是阻塞的,以套接字接口为例,在进程空间中调用recvfrom,系统调用直到数据包到达且被复制到应用进程缓冲区 ...

  7. PL/SQL Developer几个使用小技巧

    1.选中sql语句的当前行 鼠标连续点击所在行3次. 2.记住登陆密码 工具 -> 首选项 -> Oracle -> 登录历史,勾选“带口令存储”. 3.查看Oracle的tnsna ...

  8. 题解——ATCoder AtCoder Grand Contest 017 B - Moderate Differences(数学,构造)

    题面 B - Moderate Differences Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Stat ...

  9. 论文笔记之:SeqGAN: Sequence generative adversarial nets with policy gradient

    SeqGAN: Sequence generative adversarial nets with policy gradient  AAAI-2017 Introduction :  产生序列模拟数 ...

  10. Linux安装python3.7

    1.下载与解压 先到python官网: https://www.python.org/downloads/release/python-371/](https://www.python.org/dow ...