tiny_tds 2.1.2 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +571 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +56 -1
- data/Gemfile +1 -8
- data/ISSUE_TEMPLATE.md +1 -1
- data/README.md +89 -89
- data/Rakefile +44 -30
- data/VERSION +1 -1
- data/docker-compose.yml +34 -0
- data/ext/tiny_tds/client.c +100 -59
- data/ext/tiny_tds/client.h +5 -3
- data/ext/tiny_tds/extconf.rb +173 -52
- data/ext/tiny_tds/extconsts.rb +4 -11
- data/ext/tiny_tds/result.c +52 -45
- data/ext/tiny_tds/tiny_tds_ext.c +4 -1
- data/lib/tiny_tds/bin.rb +12 -26
- data/lib/tiny_tds/client.rb +38 -42
- data/lib/tiny_tds/error.rb +0 -2
- data/lib/tiny_tds/gem.rb +5 -14
- data/lib/tiny_tds/result.rb +0 -2
- data/lib/tiny_tds/version.rb +1 -1
- data/lib/tiny_tds.rb +28 -47
- data/setup_cimgruby_dev.sh +25 -0
- data/start_dev.sh +21 -0
- data/tasks/native_gem.rake +12 -10
- data/tasks/package.rake +1 -3
- data/tasks/ports.rake +14 -77
- data/tasks/test.rake +3 -5
- data/test/bin/install-freetds.sh +2 -4
- data/test/bin/install-mssql.ps1 +42 -0
- data/test/bin/install-mssqltools.sh +9 -0
- data/test/bin/restore-from-native-gem.ps1 +10 -0
- data/test/bin/setup_tinytds_db.sh +7 -0
- data/test/bin/setup_volume_permissions.sh +10 -0
- data/test/client_test.rb +152 -116
- data/test/gem_test.rb +39 -118
- data/test/result_test.rb +285 -350
- data/test/schema_test.rb +369 -395
- data/test/sql/db-create.sql +18 -0
- data/test/sql/db-login.sql +38 -0
- data/test/test_helper.rb +112 -85
- data/test/thread_test.rb +22 -31
- data/tiny_tds.gemspec +28 -26
- metadata +85 -59
- data/.travis.yml +0 -24
- data/BACKERS.md +0 -32
- data/appveyor.yml +0 -51
- data/tasks/ports/freetds.rb +0 -37
- data/tasks/ports/libiconv.rb +0 -43
- data/tasks/ports/openssl.rb +0 -78
- data/tasks/ports/recipe.rb +0 -52
- data/test/appveyor/dbsetup.ps1 +0 -27
- data/test/appveyor/dbsetup.sql +0 -9
- data/test/benchmark/query.rb +0 -77
- data/test/benchmark/query_odbc.rb +0 -106
- data/test/benchmark/query_tinytds.rb +0 -126
- data/test/bin/setup.sh +0 -19
- data/test/schema/sqlserver_2000.sql +0 -140
- data/test/schema/sqlserver_2005.sql +0 -140
- data/test/schema/sqlserver_2014.sql +0 -140
- data/test/schema/sqlserver_2016.sql +0 -140
- data/test/schema/sybase_ase.sql +0 -138
- /data/test/schema/{sqlserver_2008.sql → sqlserver_2017.sql} +0 -0
data/test/benchmark/query.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
$:.unshift File.expand_path('../../../lib',__FILE__)
|
2
|
-
require 'rubygems'
|
3
|
-
require 'bench_press'
|
4
|
-
require 'tiny_tds'
|
5
|
-
require 'odbc'
|
6
|
-
require 'odbc_utf8'
|
7
|
-
|
8
|
-
extend BenchPress
|
9
|
-
|
10
|
-
author 'Ken Collins'
|
11
|
-
summary 'Query everything.'
|
12
|
-
|
13
|
-
reps 1_000
|
14
|
-
|
15
|
-
@odbc = ODBC.connect ENV['TINYTDS_UNIT_DATASERVER'], 'tinytds', ''
|
16
|
-
@odbc.use_time = true
|
17
|
-
|
18
|
-
@odbc_utf8 = ODBC_UTF8.connect ENV['TINYTDS_UNIT_DATASERVER'], 'tinytds', ''
|
19
|
-
@odbc_utf8.use_time = true
|
20
|
-
|
21
|
-
@tinytds = TinyTds::Client.new(
|
22
|
-
:dataserver => ENV['TINYTDS_UNIT_DATASERVER'],
|
23
|
-
:username => 'tinytds',
|
24
|
-
:password => '',
|
25
|
-
:database => 'tinytdstest',
|
26
|
-
:appname => 'TinyTds Dev',
|
27
|
-
:login_timeout => 5,
|
28
|
-
:timeout => 5 )
|
29
|
-
|
30
|
-
@query_all = "SELECT * FROM [datatypes]"
|
31
|
-
|
32
|
-
|
33
|
-
measure "ODBC (ascii-8bit)" do
|
34
|
-
h = @odbc.run(@query_all)
|
35
|
-
h.fetch_all
|
36
|
-
h.drop
|
37
|
-
end
|
38
|
-
|
39
|
-
# measure "ODBC (utf8)" do
|
40
|
-
# h = @odbc_utf8.run(@query_all)
|
41
|
-
# h.fetch_all
|
42
|
-
# h.drop
|
43
|
-
# end
|
44
|
-
|
45
|
-
measure "TinyTDS (row caching)" do
|
46
|
-
@tinytds.execute(@query_all).each
|
47
|
-
end
|
48
|
-
|
49
|
-
measure "TinyTDS (no caching)" do
|
50
|
-
@tinytds.execute(@query_all).each(:cache_rows => false)
|
51
|
-
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
=begin
|
56
|
-
|
57
|
-
Author: Ken Collins
|
58
|
-
Date: January 22, 2011
|
59
|
-
Summary: Query everything.
|
60
|
-
|
61
|
-
System Information
|
62
|
-
------------------
|
63
|
-
Operating System: Mac OS X 10.6.6 (10J567)
|
64
|
-
CPU: Intel Core 2 Duo 1.6 GHz
|
65
|
-
Processor Count: 2
|
66
|
-
Memory: 4 GB
|
67
|
-
ruby 1.8.7 (2010-04-19 patchlevel 253) [i686-darwin10.4.3], MBARI 0x6770, Ruby Enterprise Edition 2010.02
|
68
|
-
|
69
|
-
"TinyTDS (row caching)" is up to 79% faster over 1,000 repetitions
|
70
|
-
------------------------------------------------------------------
|
71
|
-
|
72
|
-
TinyTDS (row caching) 4.90862512588501 secs Fastest
|
73
|
-
TinyTDS (no caching) 4.91626906394958 secs 0% Slower
|
74
|
-
ODBC (ascii-8bit) 23.959536075592 secs 79% Slower
|
75
|
-
|
76
|
-
=end
|
77
|
-
|
@@ -1,106 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bench_press'
|
3
|
-
begin gem 'odbc', '0.99992' ; rescue Gem::LoadError ; end
|
4
|
-
require 'odbc'
|
5
|
-
|
6
|
-
extend BenchPress
|
7
|
-
|
8
|
-
author 'Ken Collins'
|
9
|
-
summary 'Benchmarking ODBC Querys'
|
10
|
-
|
11
|
-
reps 1_000
|
12
|
-
|
13
|
-
@client = ODBC.connect ENV['TINYTDS_UNIT_DATASERVER'], 'tinytds', ''
|
14
|
-
@client.use_time = true
|
15
|
-
|
16
|
-
@query_nothing = "SELECT NULL AS [null]"
|
17
|
-
@query_ints = "SELECT [int], [bigint], [smallint], [tinyint] FROM [datatypes]"
|
18
|
-
@query_binaries = "SELECT [binary_50], [image], [varbinary_50] FROM [datatypes]"
|
19
|
-
@query_bits = "SELECT [bit] FROM [datatypes]"
|
20
|
-
@query_chars = "SELECT [char_10], [nchar_10], [ntext], [nvarchar_50], [text], [varchar_50] FROM [datatypes]"
|
21
|
-
@query_dates = "SELECT [datetime], [smalldatetime] FROM [datatypes]"
|
22
|
-
@query_decimals = "SELECT [decimal_9_2], [decimal_16_4], [numeric_18_0], [numeric_36_2] FROM [datatypes]"
|
23
|
-
@query_floats = "SELECT [float], [real] FROM [datatypes]"
|
24
|
-
@query_moneys = "SELECT [money], [smallmoney] FROM [datatypes]"
|
25
|
-
@query_guids = "SELECT [uniqueidentifier] FROM [datatypes]"
|
26
|
-
@query_all = "SELECT * FROM [datatypes]"
|
27
|
-
|
28
|
-
def select_all(query)
|
29
|
-
h = @client.run(query)
|
30
|
-
h.fetch_all
|
31
|
-
h.drop
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
measure "Nothing" do
|
36
|
-
select_all @query_nothing
|
37
|
-
end
|
38
|
-
|
39
|
-
measure "Integers" do
|
40
|
-
select_all @query_ints
|
41
|
-
end
|
42
|
-
|
43
|
-
measure "Binaries" do
|
44
|
-
select_all @query_binaries
|
45
|
-
end
|
46
|
-
|
47
|
-
measure "Bits" do
|
48
|
-
select_all @query_bits
|
49
|
-
end
|
50
|
-
|
51
|
-
measure "Chars" do
|
52
|
-
select_all @query_chars
|
53
|
-
end
|
54
|
-
|
55
|
-
measure "Dates" do
|
56
|
-
select_all @query_dates
|
57
|
-
end
|
58
|
-
|
59
|
-
measure "Decimals" do
|
60
|
-
select_all @query_decimals
|
61
|
-
end
|
62
|
-
|
63
|
-
measure "Floats" do
|
64
|
-
select_all @query_floats
|
65
|
-
end
|
66
|
-
|
67
|
-
measure "Moneys" do
|
68
|
-
select_all @query_moneys
|
69
|
-
end
|
70
|
-
|
71
|
-
measure "Guids" do
|
72
|
-
select_all @query_guids
|
73
|
-
end
|
74
|
-
|
75
|
-
measure "All" do
|
76
|
-
select_all @query_all
|
77
|
-
end
|
78
|
-
|
79
|
-
|
80
|
-
=begin
|
81
|
-
|
82
|
-
System Information
|
83
|
-
------------------
|
84
|
-
Operating System: Mac OS X 10.6.4 (10F569)
|
85
|
-
CPU: Intel Core 2 Duo 2.4 GHz
|
86
|
-
Processor Count: 2
|
87
|
-
Memory: 4 GB
|
88
|
-
ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0]
|
89
|
-
|
90
|
-
"Nothing" is up to 98% faster over 1,000 repetitions
|
91
|
-
----------------------------------------------------
|
92
|
-
|
93
|
-
Nothing 0.297961950302124 secs Fastest
|
94
|
-
Bits 0.377611875534058 secs 21% Slower
|
95
|
-
Guids 0.381000995635986 secs 21% Slower
|
96
|
-
Moneys 0.405518054962158 secs 26% Slower
|
97
|
-
Floats 0.409428119659424 secs 27% Slower
|
98
|
-
Integers 0.448167085647583 secs 33% Slower
|
99
|
-
Decimals 0.471596956253052 secs 36% Slower
|
100
|
-
Dates 0.52501106262207 secs 43% Slower
|
101
|
-
Binaries 3.66349482536316 secs 91% Slower
|
102
|
-
Chars 6.82928085327148 secs 95% Slower
|
103
|
-
All 28.4982612133026 secs 98% Slower
|
104
|
-
|
105
|
-
=end
|
106
|
-
|
@@ -1,126 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bench_press'
|
3
|
-
$:.unshift File.expand_path('../../../lib',__FILE__)
|
4
|
-
require 'tiny_tds'
|
5
|
-
|
6
|
-
extend BenchPress
|
7
|
-
|
8
|
-
author 'Ken Collins'
|
9
|
-
summary 'Benchmark TinyTds Querys'
|
10
|
-
|
11
|
-
reps 1_000
|
12
|
-
|
13
|
-
@client = TinyTds::Client.new({
|
14
|
-
:dataserver => ENV['TINYTDS_UNIT_DATASERVER'],
|
15
|
-
:username => 'tinytds',
|
16
|
-
:password => '',
|
17
|
-
:database => 'tinytdstest',
|
18
|
-
:appname => 'TinyTds Dev',
|
19
|
-
:login_timeout => 5,
|
20
|
-
:timeout => 5
|
21
|
-
})
|
22
|
-
|
23
|
-
@query_nothing = "SELECT NULL AS [null]"
|
24
|
-
@query_ints = "SELECT [int], [bigint], [smallint], [tinyint] FROM [datatypes]"
|
25
|
-
@query_binaries = "SELECT [binary_50], [image], [varbinary_50] FROM [datatypes]"
|
26
|
-
@query_bits = "SELECT [bit] FROM [datatypes]"
|
27
|
-
@query_chars = "SELECT [char_10], [nchar_10], [ntext], [nvarchar_50], [text], [varchar_50] FROM [datatypes]"
|
28
|
-
@query_dates = "SELECT [datetime], [smalldatetime] FROM [datatypes]"
|
29
|
-
@query_decimals = "SELECT [decimal_9_2], [decimal_16_4], [numeric_18_0], [numeric_36_2] FROM [datatypes]"
|
30
|
-
@query_floats = "SELECT [float], [real] FROM [datatypes]"
|
31
|
-
@query_moneys = "SELECT [money], [smallmoney] FROM [datatypes]"
|
32
|
-
@query_guids = "SELECT [uniqueidentifier] FROM [datatypes]"
|
33
|
-
@query_all = "SELECT * FROM [datatypes]"
|
34
|
-
|
35
|
-
def select_all(query)
|
36
|
-
@client.execute(query).each
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
measure "Nothing" do
|
41
|
-
select_all @query_nothing
|
42
|
-
end
|
43
|
-
|
44
|
-
measure "Integers" do
|
45
|
-
select_all @query_ints
|
46
|
-
end
|
47
|
-
|
48
|
-
measure "Binaries" do
|
49
|
-
select_all @query_binaries
|
50
|
-
end
|
51
|
-
|
52
|
-
measure "Bits" do
|
53
|
-
select_all @query_bits
|
54
|
-
end
|
55
|
-
|
56
|
-
measure "Chars" do
|
57
|
-
select_all @query_chars
|
58
|
-
end
|
59
|
-
|
60
|
-
measure "Dates" do
|
61
|
-
select_all @query_dates
|
62
|
-
end
|
63
|
-
|
64
|
-
measure "Decimals" do
|
65
|
-
select_all @query_decimals
|
66
|
-
end
|
67
|
-
|
68
|
-
measure "Floats" do
|
69
|
-
select_all @query_floats
|
70
|
-
end
|
71
|
-
|
72
|
-
measure "Moneys" do
|
73
|
-
select_all @query_moneys
|
74
|
-
end
|
75
|
-
|
76
|
-
measure "Guids" do
|
77
|
-
select_all @query_guids
|
78
|
-
end
|
79
|
-
|
80
|
-
measure "All" do
|
81
|
-
select_all @query_all
|
82
|
-
end
|
83
|
-
|
84
|
-
|
85
|
-
=begin
|
86
|
-
|
87
|
-
Query Tinytds
|
88
|
-
=============
|
89
|
-
Author: Ken Collins
|
90
|
-
Date: September 11, 2011
|
91
|
-
Summary: Benchmark TinyTds Querys
|
92
|
-
|
93
|
-
System Information
|
94
|
-
------------------
|
95
|
-
Operating System: Mac OS X 10.7.1 (11B26)
|
96
|
-
CPU: Quad-Core Intel Xeon 2.66 GHz
|
97
|
-
Processor Count: 4
|
98
|
-
Memory: 24 GB
|
99
|
-
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin11.1.0], MBARI 0x6770, Ruby Enterprise Edition 2011.03
|
100
|
-
|
101
|
-
----------------------------------------------------
|
102
|
-
(before 64bit times) (after 64bit times)
|
103
|
-
Nothing 0.287657022476196 secs Nothing 0.289273977279663 secs
|
104
|
-
Bits 0.406533002853394 secs Bits 0.424988031387329 secs
|
105
|
-
Guids 0.419962882995605 secs Guids 0.427381992340088 secs
|
106
|
-
Floats 0.452103137969971 secs Floats 0.455377101898193 secs
|
107
|
-
Moneys 0.481696844100952 secs Moneys 0.485175132751465 secs
|
108
|
-
Integers 0.496185064315796 secs Integers 0.525003910064697 secs
|
109
|
-
Binaries 0.538873195648193 secs Decimals 0.541536808013916 secs
|
110
|
-
Decimals 0.540570974349976 secs Binaries 0.542865991592407 secs
|
111
|
-
Dates 0.761389970779419 secs Dates 1.51440119743347 secs
|
112
|
-
Chars 0.793163061141968 secs Chars 0.666505098342896 secs
|
113
|
-
All 4.4630811214447 secs All 5.17242312431335 secs
|
114
|
-
|
115
|
-
=end
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
data/test/bin/setup.sh
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
set -x
|
4
|
-
set -e
|
5
|
-
|
6
|
-
tag=2017-GA
|
7
|
-
|
8
|
-
docker pull metaskills/mssql-server-linux-tinytds:$tag
|
9
|
-
|
10
|
-
container=$(docker ps -a -q --filter ancestor=metaskills/mssql-server-linux-tinytds:$tag)
|
11
|
-
if [[ -z $container ]]; then
|
12
|
-
docker run -p 1433:1433 -d metaskills/mssql-server-linux-tinytds:$tag && sleep 10
|
13
|
-
exit
|
14
|
-
fi
|
15
|
-
|
16
|
-
container=$(docker ps -q --filter ancestor=metaskills/mssql-server-linux-tinytds:$tag)
|
17
|
-
if [[ -z $container ]]; then
|
18
|
-
docker start $container && sleep 10
|
19
|
-
fi
|
@@ -1,140 +0,0 @@
|
|
1
|
-
|
2
|
-
/*
|
3
|
-
|
4
|
-
* Binary Data - Our test binary data is a 1 pixel gif. The basic (raw) data is below. Quoting this data
|
5
|
-
would involve this (encode) method and be (encoded) with the 0x prefix for raw SQL. In other clients the
|
6
|
-
(raw_db) value without the 0x prefix would need to be (packed) again yield the original (raw) value.
|
7
|
-
|
8
|
-
(raw) - "GIF89a\001\000\001\000\221\000\000\377\377\377\377\377\377\376\001\002\000\000\000!\371\004\004\024\000\377\000,\000\000\000\000\001\000\001\000\000\002\002D\001\000;"
|
9
|
-
(encode) - "0x#{raw.unpack("H*")[0]}"
|
10
|
-
(encoded) - "0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b"
|
11
|
-
(raw_db) - "47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b"
|
12
|
-
(packed) - [raw_db].pack('H*')
|
13
|
-
|
14
|
-
*/
|
15
|
-
|
16
|
-
CREATE TABLE [dbo].[datatypes] (
|
17
|
-
[id] [int] NOT NULL IDENTITY(1,1) PRIMARY KEY,
|
18
|
-
[bigint] [bigint] NULL,
|
19
|
-
[binary_50] [binary](50) NULL,
|
20
|
-
[bit] [bit] NULL,
|
21
|
-
[char_10] [char](10) NULL,
|
22
|
-
-- [date] [date] NULL,
|
23
|
-
[datetime] [datetime] NULL,
|
24
|
-
-- [datetime2_7] [datetime2](7) NULL,
|
25
|
-
-- [datetime2_2] [datetime2](2) NULL,
|
26
|
-
-- [datetimeoffset_2] [datetimeoffset](2) NULL,
|
27
|
-
-- [datetimeoffset_7] [datetimeoffset](7) NULL,
|
28
|
-
[decimal_9_2] [decimal](9, 2) NULL,
|
29
|
-
[decimal_16_4] [decimal](16, 4) NULL,
|
30
|
-
[float] [float] NULL,
|
31
|
-
-- [geography] [geography] NULL,
|
32
|
-
-- [geometry] [geometry] NULL,
|
33
|
-
-- [hierarchyid] [hierarchyid] NULL,
|
34
|
-
[image] [image] NULL,
|
35
|
-
[int] [int] NULL,
|
36
|
-
[money] [money] NULL,
|
37
|
-
[nchar_10] [nchar](10) NULL,
|
38
|
-
[ntext] [ntext] NULL,
|
39
|
-
[numeric_18_0] [numeric](18, 0) NULL,
|
40
|
-
[numeric_36_2] [numeric](36, 2) NULL,
|
41
|
-
[nvarchar_50] [nvarchar](50) NULL,
|
42
|
-
-- [nvarchar_max] [nvarchar](max) NULL,
|
43
|
-
[real] [real] NULL,
|
44
|
-
[smalldatetime] [smalldatetime] NULL,
|
45
|
-
[smallint] [smallint] NULL,
|
46
|
-
[smallmoney] [smallmoney] NULL,
|
47
|
-
[text] [text] NULL,
|
48
|
-
-- [time_2] [time](2) NULL,
|
49
|
-
-- [time_7] [time](7) NULL,
|
50
|
-
[timestamp] [timestamp] NULL,
|
51
|
-
[tinyint] [tinyint] NULL,
|
52
|
-
[uniqueidentifier] [uniqueidentifier] NULL,
|
53
|
-
[varbinary_50] [varbinary](50) NULL,
|
54
|
-
-- [varbinary_max] [varbinary](max) NULL,
|
55
|
-
[varchar_50] [varchar](50) NULL
|
56
|
-
-- [varchar_max] [varchar](max) NULL,
|
57
|
-
-- [xml] [xml] NULL
|
58
|
-
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
59
|
-
|
60
|
-
SET IDENTITY_INSERT [datatypes] ON
|
61
|
-
|
62
|
-
INSERT INTO [datatypes] ([id], [bigint]) VALUES ( 11, -9223372036854775807 )
|
63
|
-
INSERT INTO [datatypes] ([id], [bigint]) VALUES ( 12, 9223372036854775806 )
|
64
|
-
INSERT INTO [datatypes] ([id], [binary_50]) VALUES ( 21, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
65
|
-
INSERT INTO [datatypes] ([id], [bit]) VALUES ( 31, 1 )
|
66
|
-
INSERT INTO [datatypes] ([id], [bit]) VALUES ( 32, 0 )
|
67
|
-
INSERT INTO [datatypes] ([id], [char_10]) VALUES ( 41, '1234567890' )
|
68
|
-
INSERT INTO [datatypes] ([id], [char_10]) VALUES ( 42, '12345678' )
|
69
|
-
-- INSERT INTO [datatypes] ([id], [date]) VALUES ( 51, '0001-01-01' )
|
70
|
-
-- INSERT INTO [datatypes] ([id], [date]) VALUES ( 52, '9999-12-31' )
|
71
|
-
INSERT INTO [datatypes] ([id], [datetime]) VALUES ( 61, '1753-01-01T00:00:00.000' )
|
72
|
-
INSERT INTO [datatypes] ([id], [datetime]) VALUES ( 62, '9999-12-31T23:59:59.997' )
|
73
|
-
INSERT INTO [datatypes] ([id], [datetime]) VALUES ( 63, '2010-01-01T12:34:56.123' )
|
74
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_7]) VALUES ( 71, '0001-01-01 00:00:00.0000000' )
|
75
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_7]) VALUES ( 72, '1984-01-24 04:20:00.0000000' )
|
76
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_7]) VALUES ( 73, '9999-12-31 23:59:59.9999999' )
|
77
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_2]) VALUES ( 74, '9999-12-31 23:59:59.123456789' )
|
78
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_2]) VALUES ( 81, '1984-01-24T04:20:00.1234567-08:00' ) -- 1984-01-24 04:20:00.00 -08:00
|
79
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_2]) VALUES ( 82, '1984-01-24T04:20:00.0000000Z' ) -- 1984-01-24 04:20:00.00 +00:00
|
80
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_2]) VALUES ( 83, '9999-12-31T23:59:59.9999999Z' ) -- 9999-12-31 23:59:59.99 +00:00
|
81
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_7]) VALUES ( 84, '1984-01-24T04:20:59.1234567-08:00' ) -- 1984-01-24 04:20:59.1234567 -08:00
|
82
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_7]) VALUES ( 85, '1984-01-24T04:20:00.0000000Z' ) -- 1984-01-24 04:20:00.0000000 +00:00
|
83
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_7]) VALUES ( 86, '9999-12-31T23:59:59.9999999Z' ) -- 9999-12-31 23:59:59.9999999 +00:00
|
84
|
-
INSERT INTO [datatypes] ([id], [decimal_9_2]) VALUES ( 91, 12345.01 )
|
85
|
-
INSERT INTO [datatypes] ([id], [decimal_9_2]) VALUES ( 92, 1234567.89 )
|
86
|
-
INSERT INTO [datatypes] ([id], [decimal_16_4]) VALUES ( 93, 0.0 )
|
87
|
-
INSERT INTO [datatypes] ([id], [decimal_16_4]) VALUES ( 94, 123456789012.3456 )
|
88
|
-
INSERT INTO [datatypes] ([id], [float]) VALUES ( 101, 123.00000001 )
|
89
|
-
INSERT INTO [datatypes] ([id], [float]) VALUES ( 102, 0.0 )
|
90
|
-
INSERT INTO [datatypes] ([id], [float]) VALUES ( 103, 123.45 )
|
91
|
-
-- INSERT INTO [datatypes] ([id], [geography]) VALUES ( 111, geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326) ) -- 0xE610000001148716D9CEF7D34740D7A3703D0A975EC08716D9CEF7D34740CBA145B6F3955EC0
|
92
|
-
-- INSERT INTO [datatypes] ([id], [geometry]) VALUES ( 121, geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0) ) -- 0x0000000001040300000000000000000059400000000000005940000000000000344000000000008066400000000000806640000000000080664001000000010000000001000000FFFFFFFF0000000002
|
93
|
-
-- INSERT INTO [datatypes] ([id], [hierarchyid]) VALUES ( 131, CAST('/1/' AS hierarchyid) ) -- 0x58
|
94
|
-
-- INSERT INTO [datatypes] ([id], [hierarchyid]) VALUES ( 132, CAST('/2/' AS hierarchyid) ) -- 0x68
|
95
|
-
INSERT INTO [datatypes] ([id], [image]) VALUES ( 141, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
96
|
-
INSERT INTO [datatypes] ([id], [int]) VALUES ( 151, -2147483647 )
|
97
|
-
INSERT INTO [datatypes] ([id], [int]) VALUES ( 152, 2147483646 )
|
98
|
-
INSERT INTO [datatypes] ([id], [money]) VALUES ( 161, 4.20 )
|
99
|
-
INSERT INTO [datatypes] ([id], [money]) VALUES ( 162, -922337203685477.5807 )
|
100
|
-
INSERT INTO [datatypes] ([id], [money]) VALUES ( 163, 922337203685477.5806 )
|
101
|
-
INSERT INTO [datatypes] ([id], [nchar_10]) VALUES ( 171, N'1234567890' )
|
102
|
-
INSERT INTO [datatypes] ([id], [nchar_10]) VALUES ( 172, N'123456åå' )
|
103
|
-
INSERT INTO [datatypes] ([id], [nchar_10]) VALUES ( 173, N'abc123' )
|
104
|
-
INSERT INTO [datatypes] ([id], [ntext]) VALUES ( 181, N'test ntext' )
|
105
|
-
INSERT INTO [datatypes] ([id], [ntext]) VALUES ( 182, N'test ntext åå' )
|
106
|
-
INSERT INTO [datatypes] ([id], [numeric_18_0]) VALUES ( 191, 191 )
|
107
|
-
INSERT INTO [datatypes] ([id], [numeric_18_0]) VALUES ( 192, 123456789012345678 )
|
108
|
-
INSERT INTO [datatypes] ([id], [numeric_36_2]) VALUES ( 193, 12345678901234567890.01 )
|
109
|
-
INSERT INTO [datatypes] ([id], [numeric_36_2]) VALUES ( 194, 123.46 )
|
110
|
-
INSERT INTO [datatypes] ([id], [nvarchar_50]) VALUES ( 201, N'test nvarchar_50' )
|
111
|
-
INSERT INTO [datatypes] ([id], [nvarchar_50]) VALUES ( 202, N'test nvarchar_50 åå' )
|
112
|
-
-- INSERT INTO [datatypes] ([id], [nvarchar_max]) VALUES ( 211, N'test nvarchar_max' )
|
113
|
-
-- INSERT INTO [datatypes] ([id], [nvarchar_max]) VALUES ( 212, N'test nvarchar_max åå' )
|
114
|
-
INSERT INTO [datatypes] ([id], [real]) VALUES ( 221, 123.45 )
|
115
|
-
INSERT INTO [datatypes] ([id], [real]) VALUES ( 222, 0.0 )
|
116
|
-
INSERT INTO [datatypes] ([id], [real]) VALUES ( 223, 0.00001 )
|
117
|
-
INSERT INTO [datatypes] ([id], [smalldatetime]) VALUES ( 231, '1901-01-01T15:45:00.000' ) -- 1901-01-01 15:45:00
|
118
|
-
INSERT INTO [datatypes] ([id], [smalldatetime]) VALUES ( 232, '2078-06-05T04:20:00.000' ) -- 2078-06-05 04:20:00
|
119
|
-
INSERT INTO [datatypes] ([id], [smallint]) VALUES ( 241, -32767 )
|
120
|
-
INSERT INTO [datatypes] ([id], [smallint]) VALUES ( 242, 32766 )
|
121
|
-
INSERT INTO [datatypes] ([id], [smallmoney]) VALUES ( 251, 4.20 )
|
122
|
-
INSERT INTO [datatypes] ([id], [smallmoney]) VALUES ( 252, -214748.3647 )
|
123
|
-
INSERT INTO [datatypes] ([id], [smallmoney]) VALUES ( 253, 214748.3646 )
|
124
|
-
INSERT INTO [datatypes] ([id], [text]) VALUES ( 271, 'test text' )
|
125
|
-
-- INSERT INTO [datatypes] ([id], [time_2]) VALUES ( 281, '15:45:00.709714966' ) -- 15:45:00.71
|
126
|
-
-- INSERT INTO [datatypes] ([id], [time_2]) VALUES ( 282, '04:20:00.288321545' ) -- 04:20:00.29
|
127
|
-
-- INSERT INTO [datatypes] ([id], [time_7]) VALUES ( 283, '15:45:00.709714966' ) -- 15:45:00.709714900
|
128
|
-
-- INSERT INTO [datatypes] ([id], [time_7]) VALUES ( 284, '04:20:00.288321545' ) -- 04:20:00.288321500
|
129
|
-
INSERT INTO [datatypes] ([id], [tinyint]) VALUES ( 301, 0 )
|
130
|
-
INSERT INTO [datatypes] ([id], [tinyint]) VALUES ( 302, 255 )
|
131
|
-
INSERT INTO [datatypes] ([id], [uniqueidentifier]) VALUES ( 311, NEWID() )
|
132
|
-
INSERT INTO [datatypes] ([id], [varbinary_50]) VALUES ( 321, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
133
|
-
-- INSERT INTO [datatypes] ([id], [varbinary_max]) VALUES ( 331, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
134
|
-
INSERT INTO [datatypes] ([id], [varchar_50]) VALUES ( 341, 'test varchar_50' )
|
135
|
-
-- INSERT INTO [datatypes] ([id], [varchar_max]) VALUES ( 351, 'test varchar_max' )
|
136
|
-
-- INSERT INTO [datatypes] ([id], [xml]) VALUES ( 361, '<foo><bar>batz</bar></foo>' )
|
137
|
-
|
138
|
-
SET IDENTITY_INSERT [datatypes] OFF
|
139
|
-
|
140
|
-
|
@@ -1,140 +0,0 @@
|
|
1
|
-
|
2
|
-
/*
|
3
|
-
|
4
|
-
* Binary Data - Our test binary data is a 1 pixel gif. The basic (raw) data is below. Quoting this data
|
5
|
-
would involve this (encode) method and be (encoded) with the 0x prefix for raw SQL. In other clients the
|
6
|
-
(raw_db) value without the 0x prefix would need to be (packed) again yield the original (raw) value.
|
7
|
-
|
8
|
-
(raw) - "GIF89a\001\000\001\000\221\000\000\377\377\377\377\377\377\376\001\002\000\000\000!\371\004\004\024\000\377\000,\000\000\000\000\001\000\001\000\000\002\002D\001\000;"
|
9
|
-
(encode) - "0x#{raw.unpack("H*")[0]}"
|
10
|
-
(encoded) - "0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b"
|
11
|
-
(raw_db) - "47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b"
|
12
|
-
(packed) - [raw_db].pack('H*')
|
13
|
-
|
14
|
-
*/
|
15
|
-
|
16
|
-
CREATE TABLE [dbo].[datatypes] (
|
17
|
-
[id] [int] NOT NULL IDENTITY(1,1) PRIMARY KEY,
|
18
|
-
[bigint] [bigint] NULL,
|
19
|
-
[binary_50] [binary](50) NULL,
|
20
|
-
[bit] [bit] NULL,
|
21
|
-
[char_10] [char](10) NULL,
|
22
|
-
-- [date] [date] NULL,
|
23
|
-
[datetime] [datetime] NULL,
|
24
|
-
-- [datetime2_7] [datetime2](7) NULL,
|
25
|
-
-- [datetime2_2] [datetime2](2) NULL,
|
26
|
-
-- [datetimeoffset_2] [datetimeoffset](2) NULL,
|
27
|
-
-- [datetimeoffset_7] [datetimeoffset](7) NULL,
|
28
|
-
[decimal_9_2] [decimal](9, 2) NULL,
|
29
|
-
[decimal_16_4] [decimal](16, 4) NULL,
|
30
|
-
[float] [float] NULL,
|
31
|
-
-- [geography] [geography] NULL,
|
32
|
-
-- [geometry] [geometry] NULL,
|
33
|
-
-- [hierarchyid] [hierarchyid] NULL,
|
34
|
-
[image] [image] NULL,
|
35
|
-
[int] [int] NULL,
|
36
|
-
[money] [money] NULL,
|
37
|
-
[nchar_10] [nchar](10) NULL,
|
38
|
-
[ntext] [ntext] NULL,
|
39
|
-
[numeric_18_0] [numeric](18, 0) NULL,
|
40
|
-
[numeric_36_2] [numeric](36, 2) NULL,
|
41
|
-
[nvarchar_50] [nvarchar](50) NULL,
|
42
|
-
[nvarchar_max] [nvarchar](max) NULL,
|
43
|
-
[real] [real] NULL,
|
44
|
-
[smalldatetime] [smalldatetime] NULL,
|
45
|
-
[smallint] [smallint] NULL,
|
46
|
-
[smallmoney] [smallmoney] NULL,
|
47
|
-
[text] [text] NULL,
|
48
|
-
-- [time_2] [time](2) NULL,
|
49
|
-
-- [time_7] [time](7) NULL,
|
50
|
-
[timestamp] [timestamp] NULL,
|
51
|
-
[tinyint] [tinyint] NULL,
|
52
|
-
[uniqueidentifier] [uniqueidentifier] NULL,
|
53
|
-
[varbinary_50] [varbinary](50) NULL,
|
54
|
-
[varbinary_max] [varbinary](max) NULL,
|
55
|
-
[varchar_50] [varchar](50) NULL,
|
56
|
-
[varchar_max] [varchar](max) NULL,
|
57
|
-
[xml] [xml] NULL
|
58
|
-
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
59
|
-
|
60
|
-
SET IDENTITY_INSERT [datatypes] ON
|
61
|
-
|
62
|
-
INSERT INTO [datatypes] ([id], [bigint]) VALUES ( 11, -9223372036854775807 )
|
63
|
-
INSERT INTO [datatypes] ([id], [bigint]) VALUES ( 12, 9223372036854775806 )
|
64
|
-
INSERT INTO [datatypes] ([id], [binary_50]) VALUES ( 21, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
65
|
-
INSERT INTO [datatypes] ([id], [bit]) VALUES ( 31, 1 )
|
66
|
-
INSERT INTO [datatypes] ([id], [bit]) VALUES ( 32, 0 )
|
67
|
-
INSERT INTO [datatypes] ([id], [char_10]) VALUES ( 41, '1234567890' )
|
68
|
-
INSERT INTO [datatypes] ([id], [char_10]) VALUES ( 42, '12345678' )
|
69
|
-
-- INSERT INTO [datatypes] ([id], [date]) VALUES ( 51, '0001-01-01' )
|
70
|
-
-- INSERT INTO [datatypes] ([id], [date]) VALUES ( 52, '9999-12-31' )
|
71
|
-
INSERT INTO [datatypes] ([id], [datetime]) VALUES ( 61, '1753-01-01T00:00:00.000' )
|
72
|
-
INSERT INTO [datatypes] ([id], [datetime]) VALUES ( 62, '9999-12-31T23:59:59.997' )
|
73
|
-
INSERT INTO [datatypes] ([id], [datetime]) VALUES ( 63, '2010-01-01T12:34:56.123' )
|
74
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_7]) VALUES ( 71, '0001-01-01 00:00:00.0000000' )
|
75
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_7]) VALUES ( 72, '1984-01-24 04:20:00.0000000' )
|
76
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_7]) VALUES ( 73, '9999-12-31 23:59:59.9999999' )
|
77
|
-
-- INSERT INTO [datatypes] ([id], [datetime2_2]) VALUES ( 74, '9999-12-31 23:59:59.123456789' )
|
78
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_2]) VALUES ( 81, '1984-01-24T04:20:00.1234567-08:00' ) -- 1984-01-24 04:20:00.00 -08:00
|
79
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_2]) VALUES ( 82, '1984-01-24T04:20:00.0000000Z' ) -- 1984-01-24 04:20:00.00 +00:00
|
80
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_2]) VALUES ( 83, '9999-12-31T23:59:59.9999999Z' ) -- 9999-12-31 23:59:59.99 +00:00
|
81
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_7]) VALUES ( 84, '1984-01-24T04:20:59.1234567-08:00' ) -- 1984-01-24 04:20:59.1234567 -08:00
|
82
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_7]) VALUES ( 85, '1984-01-24T04:20:00.0000000Z' ) -- 1984-01-24 04:20:00.0000000 +00:00
|
83
|
-
-- INSERT INTO [datatypes] ([id], [datetimeoffset_7]) VALUES ( 86, '9999-12-31T23:59:59.9999999Z' ) -- 9999-12-31 23:59:59.9999999 +00:00
|
84
|
-
INSERT INTO [datatypes] ([id], [decimal_9_2]) VALUES ( 91, 12345.01 )
|
85
|
-
INSERT INTO [datatypes] ([id], [decimal_9_2]) VALUES ( 92, 1234567.89 )
|
86
|
-
INSERT INTO [datatypes] ([id], [decimal_16_4]) VALUES ( 93, 0.0 )
|
87
|
-
INSERT INTO [datatypes] ([id], [decimal_16_4]) VALUES ( 94, 123456789012.3456 )
|
88
|
-
INSERT INTO [datatypes] ([id], [float]) VALUES ( 101, 123.00000001 )
|
89
|
-
INSERT INTO [datatypes] ([id], [float]) VALUES ( 102, 0.0 )
|
90
|
-
INSERT INTO [datatypes] ([id], [float]) VALUES ( 103, 123.45 )
|
91
|
-
-- INSERT INTO [datatypes] ([id], [geography]) VALUES ( 111, geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326) ) -- 0xE610000001148716D9CEF7D34740D7A3703D0A975EC08716D9CEF7D34740CBA145B6F3955EC0
|
92
|
-
-- INSERT INTO [datatypes] ([id], [geometry]) VALUES ( 121, geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0) ) -- 0x0000000001040300000000000000000059400000000000005940000000000000344000000000008066400000000000806640000000000080664001000000010000000001000000FFFFFFFF0000000002
|
93
|
-
-- INSERT INTO [datatypes] ([id], [hierarchyid]) VALUES ( 131, CAST('/1/' AS hierarchyid) ) -- 0x58
|
94
|
-
-- INSERT INTO [datatypes] ([id], [hierarchyid]) VALUES ( 132, CAST('/2/' AS hierarchyid) ) -- 0x68
|
95
|
-
INSERT INTO [datatypes] ([id], [image]) VALUES ( 141, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
96
|
-
INSERT INTO [datatypes] ([id], [int]) VALUES ( 151, -2147483647 )
|
97
|
-
INSERT INTO [datatypes] ([id], [int]) VALUES ( 152, 2147483646 )
|
98
|
-
INSERT INTO [datatypes] ([id], [money]) VALUES ( 161, 4.20 )
|
99
|
-
INSERT INTO [datatypes] ([id], [money]) VALUES ( 162, -922337203685477.5807 )
|
100
|
-
INSERT INTO [datatypes] ([id], [money]) VALUES ( 163, 922337203685477.5806 )
|
101
|
-
INSERT INTO [datatypes] ([id], [nchar_10]) VALUES ( 171, N'1234567890' )
|
102
|
-
INSERT INTO [datatypes] ([id], [nchar_10]) VALUES ( 172, N'123456åå' )
|
103
|
-
INSERT INTO [datatypes] ([id], [nchar_10]) VALUES ( 173, N'abc123' )
|
104
|
-
INSERT INTO [datatypes] ([id], [ntext]) VALUES ( 181, N'test ntext' )
|
105
|
-
INSERT INTO [datatypes] ([id], [ntext]) VALUES ( 182, N'test ntext åå' )
|
106
|
-
INSERT INTO [datatypes] ([id], [numeric_18_0]) VALUES ( 191, 191 )
|
107
|
-
INSERT INTO [datatypes] ([id], [numeric_18_0]) VALUES ( 192, 123456789012345678 )
|
108
|
-
INSERT INTO [datatypes] ([id], [numeric_36_2]) VALUES ( 193, 12345678901234567890.01 )
|
109
|
-
INSERT INTO [datatypes] ([id], [numeric_36_2]) VALUES ( 194, 123.46 )
|
110
|
-
INSERT INTO [datatypes] ([id], [nvarchar_50]) VALUES ( 201, N'test nvarchar_50' )
|
111
|
-
INSERT INTO [datatypes] ([id], [nvarchar_50]) VALUES ( 202, N'test nvarchar_50 åå' )
|
112
|
-
INSERT INTO [datatypes] ([id], [nvarchar_max]) VALUES ( 211, N'test nvarchar_max' )
|
113
|
-
INSERT INTO [datatypes] ([id], [nvarchar_max]) VALUES ( 212, N'test nvarchar_max åå' )
|
114
|
-
INSERT INTO [datatypes] ([id], [real]) VALUES ( 221, 123.45 )
|
115
|
-
INSERT INTO [datatypes] ([id], [real]) VALUES ( 222, 0.0 )
|
116
|
-
INSERT INTO [datatypes] ([id], [real]) VALUES ( 223, 0.00001 )
|
117
|
-
INSERT INTO [datatypes] ([id], [smalldatetime]) VALUES ( 231, '1901-01-01T15:45:00.000Z' ) -- 1901-01-01 15:45:00
|
118
|
-
INSERT INTO [datatypes] ([id], [smalldatetime]) VALUES ( 232, '2078-06-05T04:20:00.000Z' ) -- 2078-06-05 04:20:00
|
119
|
-
INSERT INTO [datatypes] ([id], [smallint]) VALUES ( 241, -32767 )
|
120
|
-
INSERT INTO [datatypes] ([id], [smallint]) VALUES ( 242, 32766 )
|
121
|
-
INSERT INTO [datatypes] ([id], [smallmoney]) VALUES ( 251, 4.20 )
|
122
|
-
INSERT INTO [datatypes] ([id], [smallmoney]) VALUES ( 252, -214748.3647 )
|
123
|
-
INSERT INTO [datatypes] ([id], [smallmoney]) VALUES ( 253, 214748.3646 )
|
124
|
-
INSERT INTO [datatypes] ([id], [text]) VALUES ( 271, 'test text' )
|
125
|
-
-- INSERT INTO [datatypes] ([id], [time_2]) VALUES ( 281, '15:45:00.709714966' ) -- 15:45:00.71
|
126
|
-
-- INSERT INTO [datatypes] ([id], [time_2]) VALUES ( 282, '04:20:00.288321545' ) -- 04:20:00.29
|
127
|
-
-- INSERT INTO [datatypes] ([id], [time_7]) VALUES ( 283, '15:45:00.709714966' ) -- 15:45:00.709714900
|
128
|
-
-- INSERT INTO [datatypes] ([id], [time_7]) VALUES ( 284, '04:20:00.288321545' ) -- 04:20:00.288321500
|
129
|
-
INSERT INTO [datatypes] ([id], [tinyint]) VALUES ( 301, 0 )
|
130
|
-
INSERT INTO [datatypes] ([id], [tinyint]) VALUES ( 302, 255 )
|
131
|
-
INSERT INTO [datatypes] ([id], [uniqueidentifier]) VALUES ( 311, NEWID() )
|
132
|
-
INSERT INTO [datatypes] ([id], [varbinary_50]) VALUES ( 321, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
133
|
-
INSERT INTO [datatypes] ([id], [varbinary_max]) VALUES ( 331, 0x47494638396101000100910000fffffffffffffe010200000021f904041400ff002c00000000010001000002024401003b )
|
134
|
-
INSERT INTO [datatypes] ([id], [varchar_50]) VALUES ( 341, 'test varchar_50' )
|
135
|
-
INSERT INTO [datatypes] ([id], [varchar_max]) VALUES ( 351, 'test varchar_max' )
|
136
|
-
INSERT INTO [datatypes] ([id], [xml]) VALUES ( 361, '<foo><bar>batz</bar></foo>' )
|
137
|
-
|
138
|
-
SET IDENTITY_INSERT [datatypes] OFF
|
139
|
-
|
140
|
-
|