SQL数据库语句 下载本文

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