将数据库表中数据生成Insert SQL语气的存储过程
1
set
ANSI_NULLS
ON
2
set
QUOTED_IDENTIFIER
ON
3
go
4![None.gif](/Images/OutliningIndicators/None.gif)
5![None.gif](/Images/OutliningIndicators/None.gif)
6
Create
proc
[
dbo
]
.
[Get
_insert_sql
]
7
(
8
@tablename
varchar
(
256
)
9
,
@where
varchar
(
8000
)
=
null
10
,
@orderby
varchar
(
8000
)
=
null
11
)
12
as
13
begin
14
set
nocount
on
15
declare
@sqlstr
varchar
(
8000
)
16
declare
@sqlstr1
varchar
(
8000
)
17
declare
@sqlstr2
varchar
(
8000
)
18![None.gif](/Images/OutliningIndicators/None.gif)
19
SELECT
'
/*------------------table:
'
+
@tablename
+
'
--------*/
'
20![None.gif](/Images/OutliningIndicators/None.gif)
21
IF
OBJECTPROPERTY
(
OBJECT_ID
(
@tablename
),
'
TableHasIdentity
'
)
=
1
22
BEGIN
23
SELECT
'
SET IDENTITY_INSERT
'
+
@tablename
+
'
ON
'
24
SELECT
'
GO
'
25
END
26
--
set @where=replace(@where,'''','''''')
27
28
select
@sqlstr
=
'
select
''
INSERT INTO
'
+
@tablename
29
select
@sqlstr1
=
''
30
select
@sqlstr2
=
'
(
'
31
select
@sqlstr1
=
'
VALUES (
''
+
'
32
select
@sqlstr1
=
@sqlstr1
+
col
+
'
+
''
,
''
+
'
,
@sqlstr2
=
@sqlstr2
+
name
+
'
,
'
from
(
select
case
33
--
when a.xtype =173 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
34
when
a.xtype
=
104
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(1),
'
+
a.name
+
'
)
'
+
'
end
'
35
when
a.xtype
=
175
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
replace(
'
+
a.name
+
'
,
''''''''
,
''''''''''''
)
'
+
'
+
'''''''''
+
'
end
'
36
when
a.xtype
=
36
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
replace(
'
+
a.name
+
'
,
''''''''
,
''''''''''''
)
'
+
'
+
'''''''''
+
'
end
'
37
when
a.xtype
=
35
or
a.xtype
=
99
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
replace(convert(varchar(8000),
'
+
a.name
+
'
),
''''''''
,
''''''''''''
)
'
+
'
+
'''''''''
+
'
end
'
38
when
a.xtype
=
61
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
convert(varchar(23),
'
+
a.name
+
'
,101)
'
+
'
+
'''''''''
+
'
end
'
39
when
a.xtype
=
106
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(
'
+
convert
(
varchar
(
4
),a.xprec
+
2
)
+
'
),
'
+
a.name
+
'
)
'
+
'
end
'
40
when
a.xtype
=
62
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(23),
'
+
a.name
+
'
,2)
'
+
'
end
'
41
when
a.xtype
=
56
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(11),
'
+
a.name
+
'
)
'
+
'
end
'
42
when
a.xtype
=
60
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(22),
'
+
a.name
+
'
)
'
+
'
end
'
43
when
a.xtype
=
239
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
replace(
'
+
a.name
+
'
,
''''''''
,
''''''''''''
)
'
+
'
+
'''''''''
+
'
end
'
44
when
a.xtype
=
108
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(
'
+
convert
(
varchar
(
4
),a.xprec
+
2
)
+
'
),
'
+
a.name
+
'
)
'
+
'
end
'
45
when
a.xtype
=
231
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''
N
''''''
+
'
+
'
replace(
'
+
a.name
+
'
,
''''''''
,
''''''''''''
)
'
+
'
+
'''''''''
+
'
end
'
46
when
a.xtype
=
59
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(23),
'
+
a.name
+
'
,2)
'
+
'
end
'
47
when
a.xtype
=
58
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
convert(varchar(23),
'
+
a.name
+
'
,101)
'
+
'
+
'''''''''
+
'
end
'
48
when
a.xtype
=
52
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(12),
'
+
a.name
+
'
)
'
+
'
end
'
49
when
a.xtype
=
122
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(22),
'
+
a.name
+
'
)
'
+
'
end
'
50
when
a.xtype
=
48
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'
convert(varchar(6),
'
+
a.name
+
'
)
'
+
'
end
'
51
--
when a.xtype =165 then 'case when '+a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+a.name +')'+' end'
52
when
a.xtype
=
167
then
'
case when
'
+
a.name
+
'
is null then
''
NULL
''
else
'
+
'''''''''
+
'
+
'
replace(
'
+
a.name
+
'
,
''''''''
,
''''''''''''
)
'
+
'
+
'''''''''
+
'
end
'
53
else
'''
NULL
'''
54
end
as
col,a.colid,a.name
55
from
syscolumns a
where
a.id
=
object_id
(
@tablename
)
and
a.xtype
<>
189
and
a.xtype
<>
34
and
a.xtype
<>
35
56
)t
order
by
colid
57
58
select
@sqlstr
=
@sqlstr
+left
(
@sqlstr2
,
len
(
@sqlstr2
)
-
1
)
+
'
)
'
+left
(
@sqlstr1
,
len
(
@sqlstr1
)
-
3
)
+
'
)
''
+
''''
from
'
+
@tablename
59
if
@where
is
not
null
60
select
@sqlstr
=
@sqlstr
+
'
where
'
+
@where
61
if
@orderby
is
not
null
62
select
@sqlstr
=
@sqlstr
+
'
order by
'
+
@orderby
63
64
--
print @sqlstr
65
exec
(
@sqlstr
)
66
67
SELECT
'
GO
'
68
69
IF
OBJECTPROPERTY
(
OBJECT_ID
(
@tablename
),
'
TableHasIdentity
'
)
=
1
70
BEGIN
71
SELECT
'
SET IDENTITY_INSERT
'
+
@tablename
+
'
OFF
'
72
SELECT
'
GO
'
73
SELECT
'
'
74
END
75![None.gif](/Images/OutliningIndicators/None.gif)
76
set
nocount
off
77
end
78![None.gif](/Images/OutliningIndicators/None.gif)
79![None.gif](/Images/OutliningIndicators/None.gif)
80
![None.gif](/Images/OutliningIndicators/None.gif)
2
![None.gif](/Images/OutliningIndicators/None.gif)
3
![None.gif](/Images/OutliningIndicators/None.gif)
4
![None.gif](/Images/OutliningIndicators/None.gif)
5
![None.gif](/Images/OutliningIndicators/None.gif)
6
![None.gif](/Images/OutliningIndicators/None.gif)
7
![None.gif](/Images/OutliningIndicators/None.gif)
8
![None.gif](/Images/OutliningIndicators/None.gif)
9
![None.gif](/Images/OutliningIndicators/None.gif)
10
![None.gif](/Images/OutliningIndicators/None.gif)
11
![None.gif](/Images/OutliningIndicators/None.gif)
12
![None.gif](/Images/OutliningIndicators/None.gif)
13
![None.gif](/Images/OutliningIndicators/None.gif)
14
![None.gif](/Images/OutliningIndicators/None.gif)
15
![None.gif](/Images/OutliningIndicators/None.gif)
16
![None.gif](/Images/OutliningIndicators/None.gif)
17
![None.gif](/Images/OutliningIndicators/None.gif)
18
![None.gif](/Images/OutliningIndicators/None.gif)
19
![None.gif](/Images/OutliningIndicators/None.gif)
20
![None.gif](/Images/OutliningIndicators/None.gif)
21
![None.gif](/Images/OutliningIndicators/None.gif)
22
![None.gif](/Images/OutliningIndicators/None.gif)
23
![None.gif](/Images/OutliningIndicators/None.gif)
24
![None.gif](/Images/OutliningIndicators/None.gif)
25
![None.gif](/Images/OutliningIndicators/None.gif)
26
![None.gif](/Images/OutliningIndicators/None.gif)
27
![None.gif](/Images/OutliningIndicators/None.gif)
28
![None.gif](/Images/OutliningIndicators/None.gif)
29
![None.gif](/Images/OutliningIndicators/None.gif)
30
![None.gif](/Images/OutliningIndicators/None.gif)
31
![None.gif](/Images/OutliningIndicators/None.gif)
32
![None.gif](/Images/OutliningIndicators/None.gif)
33
![None.gif](/Images/OutliningIndicators/None.gif)
34
![None.gif](/Images/OutliningIndicators/None.gif)
35
![None.gif](/Images/OutliningIndicators/None.gif)
36
![None.gif](/Images/OutliningIndicators/None.gif)
37
![None.gif](/Images/OutliningIndicators/None.gif)
38
![None.gif](/Images/OutliningIndicators/None.gif)
39
![None.gif](/Images/OutliningIndicators/None.gif)
40
![None.gif](/Images/OutliningIndicators/None.gif)
41
![None.gif](/Images/OutliningIndicators/None.gif)
42
![None.gif](/Images/OutliningIndicators/None.gif)
43
![None.gif](/Images/OutliningIndicators/None.gif)
44
![None.gif](/Images/OutliningIndicators/None.gif)
45
![None.gif](/Images/OutliningIndicators/None.gif)
46
![None.gif](/Images/OutliningIndicators/None.gif)
47
![None.gif](/Images/OutliningIndicators/None.gif)
48
![None.gif](/Images/OutliningIndicators/None.gif)
49
![None.gif](/Images/OutliningIndicators/None.gif)
50
![None.gif](/Images/OutliningIndicators/None.gif)
51
![None.gif](/Images/OutliningIndicators/None.gif)
52
![None.gif](/Images/OutliningIndicators/None.gif)
53
![None.gif](/Images/OutliningIndicators/None.gif)
54
![None.gif](/Images/OutliningIndicators/None.gif)
55
![None.gif](/Images/OutliningIndicators/None.gif)
56
![None.gif](/Images/OutliningIndicators/None.gif)
57
![None.gif](/Images/OutliningIndicators/None.gif)
58
![None.gif](/Images/OutliningIndicators/None.gif)
59
![None.gif](/Images/OutliningIndicators/None.gif)
60
![None.gif](/Images/OutliningIndicators/None.gif)
61
![None.gif](/Images/OutliningIndicators/None.gif)
62
![None.gif](/Images/OutliningIndicators/None.gif)
63
![None.gif](/Images/OutliningIndicators/None.gif)
64
![None.gif](/Images/OutliningIndicators/None.gif)
65
![None.gif](/Images/OutliningIndicators/None.gif)
66
![None.gif](/Images/OutliningIndicators/None.gif)
67
![None.gif](/Images/OutliningIndicators/None.gif)
68
![None.gif](/Images/OutliningIndicators/None.gif)
69
![None.gif](/Images/OutliningIndicators/None.gif)
70
![None.gif](/Images/OutliningIndicators/None.gif)
71
![None.gif](/Images/OutliningIndicators/None.gif)
72
![None.gif](/Images/OutliningIndicators/None.gif)
73
![None.gif](/Images/OutliningIndicators/None.gif)
74
![None.gif](/Images/OutliningIndicators/None.gif)
75
![None.gif](/Images/OutliningIndicators/None.gif)
76
![None.gif](/Images/OutliningIndicators/None.gif)
77
![None.gif](/Images/OutliningIndicators/None.gif)
78
![None.gif](/Images/OutliningIndicators/None.gif)
79
![None.gif](/Images/OutliningIndicators/None.gif)
80
![None.gif](/Images/OutliningIndicators/None.gif)