设为首页 收藏本站
查看: 2011|回复: 0

[经验分享] 一些有用的SQL Server语句和存储过程

[复制链接]

尚未签到

发表于 2016-11-5 07:00:23 | 显示全部楼层 |阅读模式
1 DSC0000.gif --======================================================
2
3--列出SQLSERVER所有表,字段名,主键,类型,长度,小数位数等信息
4
5--在查询分析器里运行即可,可以生成一个表,导出到EXCEL中
6
7--======================================================
8
9Select
10
11(CaseWhenA.Colorder=1ThenD.NameElse''End)表名,
12
13A.Colorder字段序号,
14
15A.Name字段名,
16
17(CaseWhenColumnproperty(A.Id,A.Name,'Isidentity')=1Then''Else''End)标识,
18
19(CaseWhen(SelectCount(*)
20
21FromSysobjects
22
23Where(NameIn
24
25(SelectName
26
27FromSysindexes
28
29Where(Id=A.Id)And(IndidIn
30
31(SelectIndid
32
33FromSysindexkeys
34
35Where(Id=A.Id)And(ColidIn
36
37(SelectColid
38
39FromSyscolumns
40
41Where(Id=A.Id)And(Name=A.Name)))))))And
42
43(Xtype='Pk'))>0Then''Else''End)主键,
44
45B.Name类型,
46
47A.Length占用字节数,
48
49Columnproperty(A.Id,A.Name,'Precision')As长度,
50
51Isnull(Columnproperty(A.Id,A.Name,'Scale'),0)As小数位数,
52
53(CaseWhenA.Isnullable=1Then''Else''End)允许空,
54
55Isnull(E.Text,'')默认值,
56
57Isnull(G.[Value],'')As字段说明
58
59FromSyscolumnsALeftJoinSystypesB
60
61OnA.Xtype=B.Xusertype
62
63InnerJoinSysobjectsD
64
65OnA.Id=D.IdAndD.Xtype='U'AndD.Name<>'Dtproperties'
66
67LeftJoinSyscommentsE
68
69OnA.Cdefault=E.Id
70
71LeftJoinSyspropertiesG
72
73OnA.Id=G.IdAndA.Colid=G.Smallid
74
75OrderByA.Id,A.Colorder
76
77列出SQLSERVER所有表、字段定义,类型,长度,一个值等信息
78
79并导出到Excel中
80
81--======================================================
82
83--Exportallusertablesdefinitionandonesamplevalue
84
85--jan-13-2003,Dr.Zhang
86
87--======================================================
88
89在查询分析器里运行:
90
91SETANSI_NULLSOFF
92
93GO
94
95SETNOCOUNTON
96
97GO
98
99
100
101SETLANGUAGE'SimplifiedChinese'
102
103go
104
105DECLARE@tblnvarchar(200),@fldnvarchar(200),@sqlnvarchar(4000),@maxlenint,@samplenvarchar(40)
106
107
108
109SELECTd.nameTableName,a.nameFieldName,b.nameTypeName,a.lengthLength,a.isnullableIS_NULLINTO#t
110
111FROMsyscolumnsa,systypesb,sysobjectsd
112
113WHEREa.xtype=b.xusertypeanda.id=d.idandd.xtype='U'
114
115
116
117DECLAREread_cursorCURSOR
118
119FORSELECTTableName,FieldNameFROM#t
120
121
122
123SELECTTOP1'_TableName'TableName,
124
125'FieldName'FieldName,'TypeName'TypeName,
126
127'Length'Length,'IS_NULL'IS_NULL,
128
129'MaxLenUsed'ASMaxLenUsed,'SampleValue'Sample,
130
131'Comment'CommentINTO#tcFROM#t
132
133
134
135OPENread_cursor
136
137
138
139FETCHNEXTFROMread_cursorINTO@tbl,@fld
140
141WHILE(@@fetch_status<>-1)---failes
142
143BEGIN
144
145IF(@@fetch_status<>-2)--Missing
146
147BEGIN
148
149SET@sql=N'SET@maxlen=(SELECTmax(len(cast('+@fld+'asnvarchar)))FROM'+@tbl+')'
150
151--PRINT@sql
152
153EXECSP_EXECUTESQL@sql,N'@maxlenintOUTPUT',@maxlenOUTPUT
154
155--print@maxlen
156
157SET@sql=N'SET@sample=(SELECTTOP1cast('+@fld+'asnvarchar)FROM'+@tbl+'WHERElen(cast('+@fld+'asnvarchar))='+convert(nvarchar(5),@maxlen)+')'
158
159EXECSP_EXECUTESQL@sql,N'@samplevarchar(30)OUTPUT',@sampleOUTPUT
160
161--forquickly
162
163--SET@sql=N'SET@sample=convert(varchar(20),(SELECTTOP1'+@fld+'FROM'+
164
165--@tbl+'orderby1desc))'
166
167PRINT@sql
168
169print@sample
170
171print@tbl
172
173EXECSP_EXECUTESQL@sql,N'@samplenvarchar(30)OUTPUT',@sampleOUTPUT
174
175INSERTINTO#tcSELECT*,ltrim(ISNULL(@maxlen,0))asMaxLenUsed,
176
177convert(nchar(20),ltrim(ISNULL(@sample,'')))asSample,''CommentFROM#twhereTableName=@tblandFieldName=@fld
178
179END
180
181FETCHNEXTFROMread_cursorINTO@tbl,@fld
182
183END
184
185
186
187CLOSEread_cursor
188
189DEALLOCATEread_cursor
190
191GO
192
193
194
195SETANSI_NULLSON
196
197GO
198
199SETNOCOUNTOFF
200
201GO
202
203selectcount(*)from#t
204
205DROPTABLE#t
206
207GO
208
209
210
211selectcount(*)-1from#tc
212
213
214
215select*into##txfrom#tcorderbytablename
216
217DROPTABL

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-295880-1-1.html 上篇帖子: (转)SQL Server删除所有用户自定义存储过程 下篇帖子: sql server性能分析--检测数据库阻塞语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表