各位请帮忙,用sql server 2005/2008 job运行这段程序:IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test1]') AND type in (N'U'))
DROP TABLE [dbo].[test1]CREATE TABLE [dbo].[test1](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test2]') AND type in (N'U'))
DROP TABLE [dbo].[test2]CREATE TABLE [dbo].[test2](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]insert test1(c1,c2)
values(1,space(2345))insert test2
exec('select * from test1')然后检查两个表中的c2字段长度:select max(datalength(c2))
from test1
select max(datalength(c2))
from test2发现test2中c2被截短为512或1024个字符。如果在SSMS中运行上面的程序,则不会出现截短的情况。请问这是什么原因造成的啊?多谢了!
DROP TABLE [dbo].[test1]CREATE TABLE [dbo].[test1](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test2]') AND type in (N'U'))
DROP TABLE [dbo].[test2]CREATE TABLE [dbo].[test2](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]insert test1(c1,c2)
values(1,space(2345))insert test2
exec('select * from test1')然后检查两个表中的c2字段长度:select max(datalength(c2))
from test1
select max(datalength(c2))
from test2发现test2中c2被截短为512或1024个字符。如果在SSMS中运行上面的程序,则不会出现截短的情况。请问这是什么原因造成的啊?多谢了!
select max(len(c2)) from test1
select max(len(c2)) from test2
DROP TABLE [dbo].[test1]CREATE TABLE [dbo].[test1](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test2]') AND type in (N'U'))
DROP TABLE [dbo].[test2]CREATE TABLE [dbo].[test2](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]insert test1(c1,c2)
values(1,space(2345))insert test2
exec('select * from test1')
select max(datalength(c2))
from test1
select max(datalength(c2))
from test2
(1 行受影响)(1 行受影响)-----------
2345(1 行受影响)
-----------
2345(1 行受影响)
DROP TABLE [dbo].[test1]CREATE TABLE [dbo].[test1](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test2]') AND type in (N'U'))
DROP TABLE [dbo].[test2]CREATE TABLE [dbo].[test2](
[c1] [int] NULL,
[c2] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]set TEXTSIZE 60insert test1(c1,c2)
values(1,REPLICATE(1,80))insert test2
exec('select * from test1')
select * from test1select * from test2
(1 行受影响)(1 行受影响)
c1 c2
----------- ------------------------------------------------------------
1 111111111111111111111111111111111111111111111111111111111111(1 行受影响)c1 c2
----------- ------------------------------------------------------------
1 111111111111111111111111111111111111111111111111111111111111(1 行受影响)
set TEXTSIZE 2147483647select * from test1select * from test2c1 c2
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 11111111111111111111111111111111111111111111111111111111111111111111111111111111(1 行受影响)c1 c2
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 111111111111111111111111111111111111111111111111111111111111(1 行受影响)