积极答复者
Sql Server 2005 字符的默认返回类型

问题
答案
-
SELECT * INTO TypeTable_test FROM ( SELECT '123' AS TEXT UNION ALL SELECT '123456' ) t SELECT TYPE_NAME(xtype) typename,length, xprec, xscale FROM syscolumns WHERE id = OBJECT_ID('TypeTable_test') /* typename length xprec xscale ---------------- ------ ----- ------ VARCHAR 6 0 0 (1 行受影响) */ DROP TABLE TypeTable_test
是Varchar型。
如果您得到满意的答复,请将正确的回复标记为答案,以示问题解决,方便其他人浏览!Ths!- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
-
类型是跟您的语句有关
而长度是容得下你语句内容的最小长度。--INT(4) SELECT 123 --VARCHAR(3) SELECT '123' --NVARCHAR(6) SELECT N'123'
- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
-
另外也要注意一下隐式类型转换,下面这两种情况都会被转成int类型。
SELECT Text+'S' AS MyText FROM ( SELECT '123'+1 AS TEXT UNION ALL SELECT '123456' ) t SELECT Text+'S' AS MyText FROM ( SELECT '123' AS TEXT UNION ALL SELECT '123456' UNION ALL SELECT 1 ) t --Msg 245, Level 16, State 1, Line 1 --Conversion failed when converting the varchar value 'S' to data type int.
- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
-
下面的示例帮助你去了解常量的数据类型和长度
DECLARE @test sql_variant ; SET @test = 'a'; SELECT SQL_VARIANT_PROPERTY(@test, 'BaseType'), SQL_VARIANT_PROPERTY(@test, 'maxlength') ; SET @test = CONVERT(varchar(100), 'aaa'); SELECT SQL_VARIANT_PROPERTY(@test, 'BaseType'), SQL_VARIANT_PROPERTY(@test, 'maxlength') ;
- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
全部回复
-
SELECT * INTO TypeTable_test FROM ( SELECT '123' AS TEXT UNION ALL SELECT '123456' ) t SELECT TYPE_NAME(xtype) typename,length, xprec, xscale FROM syscolumns WHERE id = OBJECT_ID('TypeTable_test') /* typename length xprec xscale ---------------- ------ ----- ------ VARCHAR 6 0 0 (1 行受影响) */ DROP TABLE TypeTable_test
是Varchar型。
如果您得到满意的答复,请将正确的回复标记为答案,以示问题解决,方便其他人浏览!Ths!- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
-
类型是跟您的语句有关
而长度是容得下你语句内容的最小长度。--INT(4) SELECT 123 --VARCHAR(3) SELECT '123' --NVARCHAR(6) SELECT N'123'
- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
-
另外也要注意一下隐式类型转换,下面这两种情况都会被转成int类型。
SELECT Text+'S' AS MyText FROM ( SELECT '123'+1 AS TEXT UNION ALL SELECT '123456' ) t SELECT Text+'S' AS MyText FROM ( SELECT '123' AS TEXT UNION ALL SELECT '123456' UNION ALL SELECT 1 ) t --Msg 245, Level 16, State 1, Line 1 --Conversion failed when converting the varchar value 'S' to data type int.
- 已标记为答案 JerrynetModerator 2010年9月9日 6:49
-
下面的示例帮助你去了解常量的数据类型和长度
DECLARE @test sql_variant ; SET @test = 'a'; SELECT SQL_VARIANT_PROPERTY(@test, 'BaseType'), SQL_VARIANT_PROPERTY(@test, 'maxlength') ; SET @test = CONVERT(varchar(100), 'aaa'); SELECT SQL_VARIANT_PROPERTY(@test, 'BaseType'), SQL_VARIANT_PROPERTY(@test, 'maxlength') ;
- 已标记为答案 JerrynetModerator 2010年9月9日 6:49