sys.databases
显示所有数据库信息
sys.tables
显示当前数据库所有的表的信息
Go
向 SQL Server 实用工具发出一批 Transact-SQL 语句已结束的信号,Go本身不是T-SQL语句
sq_addrole 等等
SQL Server 系统存储过程以字符 sp_ 开头。
EXEC或EXECUTE
执行 Transact-SQL 批处理中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、CLR 存储过程、标量值用户定义函数或扩展存储过程。
sqlserver中使用的N‘xxx’
N'xxx' 标识将单引号中的xxx强制转换为Unicode编码的字符,不用在中文情况下会出现乱码.
因为在英文中常用的是ASCII码(一个字符占一个字节),而我们用的中文一个汉字就要占两个字节所以要用N'xxx'强制转换为Unicode编码的字符,这样单引号中不管是英文字符还是汉字一个都占两个字节,统一起来,不会出现乱码! 加上 N 代表存入数据库时以 Unicode 格式存储。
EXEC sp_helpuser '用户名'
查看指定用户被赋予的所有角色,如果后面不指定用户名,则列出所用用户对应的角色。
分隔标识符(数据库引擎)
详细的解释可以点我
left 和 right 函数
LEFT()与RIGHT()函数是相似的,它们都返回一定长度的子字符串。这两个函数的区别是,它们返回的分别是字符串的不同部分。LEFT() 函数返回字符串最左边的字符,顺序从左数到右。RIGHT()函数正好相反,它从最右边的字符开始,以从右到左的顺序返回特定数量的字符。
如果想返回全名中的姓氏或者名字,该怎么办?这需要多做一点工作。如果能确定每个姓名中空格的位置,就可以使用LEFT()函数在全名中读取名字。在这种情况下,可以使用CHARINDEX()或者PATINDEX()函数来定位空格,然后使用LEFT()函数返回空格前的字符。
1 DECLARE @FullName varchar(25), @SpaceIndex tinyint 2 SET @FullName = 'George Washington' 3 -- Get index of the delimiting space: 4 SET @SpaceIndex = CHARINDEX(' ' , @FullName) 5 -- Return all characters to the left of the space: 6 SELECT LEFT(@FullName, @SpaceIndex - 1)
如果不想在结果中包含空格,就需要从@SpaceIndex值中减去1,这样结果中就只有名字了。
isnull 函数
ISNULL函数有两个参数, 如
1 declare @sum int 2 select isnull(@sum, 5)
第一个参数是要判断是否为空的值或变量,如果第一个参数为NULL,那么就返回第二个参数,如果第一个参数不为NULL,那么就返回其本身的值。
identity函数
identity(int, begin, step), 这里第一个参数一般为int, 第二个参数为第一个下标的值,第三个参数为步长。
使用identity(int,1,1)来产生行号,必须把数据插入到一张表中。
1 select rowid=identity(int,1,1),customer_name into tempT from customer 2 select * from tempT
set nocount on
关闭影响行数的显示
replace函数
replace(str, old, new)
用new代替str中出现的所有的old
object_id函数
object_id('对象名', '对象类型')
表的类型为U(即 type='U'), 触发器的类型为TR(即type='TR')
db_name()函数
返回当前数据库名称
getdate()函数
返回当前系统时间