41. 表中删除默认约束 usemyday
altertabledbo.同学录
dropconstraintdf_highschool
42. 表中创建外键约束(被引用的列需要是约束列) usemyday
altertableNEW_Customer
addconstraintFkey_IDforeignkey(ID)referencesdbo.客户信息(ID)
43. 创建架构mydbo usemyday go
createschemamydbo 44. 修改表的架构 usemyday
alterschemamydbotransferdbo.客户信息
45. 更改数据库名称(不建议使用,建议直接删除再重建数据库)
executesp_renamedb@dbname='hello',@newname='HelloWorld'
46. 重命名数据表名称 useHelloWorld
executesp_rename@objname='Table_3',@newname='Table_2',@objtype='object'
47. 重命名数据表的列名称 useHelloWorld
executesp_rename@objname='dbo.Table_3.ID',@newname='ID3',@objtype='column'
48. 重命名索引
USEAdventureWorks; GO
EXECsp_renameN'Purchasing.ProductVendor.IX_ProductVendor_VendorID',N'IX_VendorID',N'INDEX'; GO
49. 重命名数据类型 USEAdventureWorks; GO
EXECsp_renameN'Phone',N'Telephone',N'USERDATATYPE'; GO
50. 运行作业 usemsdb
execsp_start_job@job_name='schedule_test' 51. 使用Output语句获取Delete、Update、Insert的行
USEmyday GO
ifexists(select*fromdbo.客户信息) deletefromdbo.客户信息 UPDATEdbo.客户信息 SETsAlary= 9000 OUTPUT
inserted.* INTO客户信息
FROMdbo.客户信息whereIDin('1','2') SELECT*FROM客户信息 select*fromdbo.客户信息 GO
52. 定义一个用户的表(需要先自定义一个表类型 Create Type)
DECLARE @LocationTVP AS LocationTableType;
53. 执行字符串语句
declare@tablenamevarchar(100)
set@tablename='不良数据_原始数据'
exec('select * from dbo.'+@tablename) 54. 使用事务:执行
useMyday
begintranUpdate_date
55. 使用事务:回滚
useMyday
begintranUpdate_date
updatedbo.人员信息setName='邱健海'whereID=5 rollbacktranUpdate_date
56. 使用事务:满足条件执行,不满足回滚
useMyday
begintranUpdate_date
updatedbo.人员信息setName='邱健海'whereID=3 if@@ERROR<>0 begin
updatedbo.人员信息setName='邱健海'whereID=5 committranUpdate_date
rollbacktranUpdate_date
end else begin
committranUpdate_date end
57. 创建视图
CREATEVIEW[dbo].[V_People] AS
SELECTdbo.人员信息.Name,dbo.人员信息.School,dbo.人员信息.BsetLove FROMdbo.人员信息,dbo.人员信息wheredbo.人员信息.Name=dbo.人员信息.Name
58. 表A对比表B,选择表B没有的数据 useMyday
select*fromMOexcept (select*fromMO2unionselect*fromMO2) 59. 表A对比表B,选择表AB都有的数据 useMyday
select*fromMOIntersect (select*fromMO2unionselect*fromMO2) 60. 使用Raiserror发送消息或者错误 --发送消息,不产生报警 USE[Myday]
select*fromdbo.MO
raiserror('hello world',10,1,N'abcde') --发送错误,产出报警 USE[Myday]
select*fromdbo.MO
raiserror('hello world',16,1,N'abcde') 61. 使用视图关联两个表 USE[Myday]
CREATEVIEW[dbo].[View_1] AS
SELECTdbo.MO2.ID,dbo.MO2.Line,dbo.MO2.Count,dbo.MO2_Info.LineInfo1,dbo.MO2_Info.LineInfo2,dbo.MO2_Info.LineInfo3 FROMdbo.MO2,dbo.MO2_Info
wheredbo.MO2.Line=dbo.MO2_Info.Line
62. 使用视图合并两个结构一样的表 USE[Myday]
CREATEVIEW[dbo].[View_UnionMO23]
AS
SELECTdbo.MO2.ID,dbo.MO2.Line,dbo.MO2.Count FROMdbo.MO2 unionall
selectdbo.MO3.ID,dbo.MO3.Line,dbo.MO3.Count fromdbo.MO3
63. 派生表
select*from (SelectLine,COUNTfromMO)ast 64. 查找150行到170行的数据
useMyday select*from
(selectROW_NUMBER()over(orderbylineasc)asnum,*fromdbo.MO)ast wheret.numbetween 150 and 170 orderbyLineasc
65. E 66. E 67. E 68. E 69. E 70. E 71. E 72. E 73. E 74. E 75. E 76. E 77. e 78. Tt 79. Tt 80. ee 81. 44 82. 83. 444 84. www