动态生成的SQL语句太长出错怎么办?

lbj985 2008-12-08 03:09:03
select Cust.ID as ID,Cust.CustNo as [客户编号],Cust.ID as [自动ID],Cust.CustNameALL_En as [英文全名],Cust.CustKindID as [客户类型ID],Cust.Remark as [备忘录],Cust.CustName as [中文简称],Cust.CustNameALL as [中文全名],Cust.Isfail as [禁用],Cust.Countries as [国家],Cust.Provinces as [地区],Cust.QY as [所属区域],Cust.SysEditDate as [修改日期],Cust.SysEditUser as [修改人],Cust.EMAIL as [EMAIL],Cust.Address as [国内地址],Cust.SysAddDate as [建档日期],Cust.Contacts as [联络人],Cust.FAX as [传真],Cust.CustName_En as [英文简称],Cust.ZJM as [助记码],Cust.HY as [区域],Cust.JB as [级别],Cust.TEL as [电话],Cust.Address_En as [国外地址],Cust.HomePage as [网址],Cust.SysAddUser as [建档人],Cust.SysPassDate as [审核日期],Cust.SysPassUser as [审核人],Cust.SysLockDate as [锁定日期],Cust.SysLockUser as [锁定人],Cust.SysIsPass as [已审],Cust.SysIsLock as [已锁],CustKind.ID as [自动ID],CustKind.CustKindNo_ALL as [完整类型号],CustKind.CustKindName_ALL as [完整类型名],CustKind.Parent as [所属类型],CustKind.CustKindNO as [类型号],Cu
stKind.CustKindName as [类型名],CustKind.Remark as [备注],CustKind.IsFail as [禁用],CustKind.SysAddDate as [建档日期],CustKind.SysAddUser as [建档人],CustKind.SysEditDate as [修改日期],CustKind.SysEditUser as [修改人],CustKind.SysPassDate as [审核日期],CustKind.SysPassUser as [审核人],CustKind.SysLockDate as [锁定日期],CustKind.SysLockUser as [锁定人],CustKind.SysIsPass as [已审],CustKind.SysIsLock as [已锁] FROM Cust INNER JOIN
CustKind ON Cust.CustKindID = CustKind.ID



SQL语句如同上面,在红色的地方(Cu stKind)被截断,这种情况如何处理?我尝试过看是否被回车符截断,将所有回车符替换为""也不行。


真要命,各位大侠救急!Help!!
...全文
513 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbj985 2008-12-09
  • 打赏
  • 举报
回复
flairsky 兄的看起来好复杂啊,要花时间去消化。多谢各位!!
lbj985 2008-12-09
  • 打赏
  • 举报
回复
其实是这样的:
针对每个Grid,用户可以自定义显示项目。我将用户选择的字段放的一个数据表里面,然后通过查询这个表再循环每一条纪录(字段),再重新组装出完整的select语句。

Function ModA_SQLString(FormID As String, Kind As ModA_SQLString_Kind) '得到用户自定义显示项目(表名,类型)/得到form_load查询语句(用户定义显示/全部)
Dim P_oRs As New ADODB.Recordset
ModA_SQLString = ""

'得到所属表的主表
Dim F_TableMain As String
SQLstring = "select * from YHFormTable where FormID='" & FormID & "' and isnull(IsMain,0)<>0"
Set P_oRs = SQL.ExecQuery(SQLstring)
If P_oRs.EOF Then
MsgBox "本窗口未配置数据库或未设置主表,无法操作,请与程式设计师联系!"
Exit Function
Else
If P_oRs.RecordCount > 1 Then
MsgBox "主表只能设置一个!操作可能会有误!"
End If
F_TableMain = P_oRs!TableName & ""
End If

'得到查询语句
SQLstring = "select * from YHFormInfo where FormID='" & FormID & "'"
Set P_oRs = SQL.ExecQuery(SQLstring)
If P_oRs.EOF Then
MsgBox "未定义该窗口的查询语句,操作失败!"
Exit Function
End If


'分解出查询语句,截取Form后的数据
ModA_SQLString = P_oRs!SQLStr & ""
If InStr(1, ModA_SQLString, "FROM", vbTextCompare) = 0 Then
MsgBox "查询语句不存在FROM,操作中止!"
Exit Function
End If
ModA_SQLString = Trim(Right(ModA_SQLString, Len(ModA_SQLString) - InStr(ModA_SQLString, "FROM") + 1))


'得到显示字段
SQLstring = "select * from YHGridDIY where FormID='" & FormID & "' and isnull(IsShow,0)<>0"
If Kind = SYSTEM_1 Then
SQLstring = SQLstring & " and Kind='SYSTEM' order by Sort"
Else
SQLstring = SQLstring & " and Kind='USER' and UserID='" & V_Login_User & "' order by Sort"
End If
Set P_oRs = SQL.ExecQuery(SQLstring)
If P_oRs.EOF And Kind = SYSTEM_1 Then
MsgBox "无系统默认方案!请与程式设计师联系!"
ModA_SQLString = ""
Exit Function
ElseIf P_oRs.EOF And Kind = USER_1 Then
MsgBox "您未设定自定义方案!"
ModA_SQLString = ""
Exit Function
End If

Dim F_FieldStr As String
F_FieldStr = "select " & F_TableMain & ".ID as ID" '必须显示主表ID号
Dim i, m
i = 1
m = 1
Do While Not P_oRs.EOF
If P_oRs!FieldRemark_User & "" = "" Then '用户字段为空则显示系统默认字段备注
F_FieldStr = F_FieldStr & "," & P_oRs!TableName & "." & P_oRs!Field & " as [" & P_oRs!FieldRemark & "]"
i = i + 1
Else
F_FieldStr = F_FieldStr & "," & P_oRs!TableName & "." & P_oRs!Field & " as [" & P_oRs!FieldRemark_User & "]"
End If
If m > 5 Then '为防太长被截断,增加回车符
F_FieldStr = F_FieldStr & " " & vbCrLf
m = 1
End If
m = m + 1
P_oRs.MoveNext
Loop
ModA_SQLString = F_FieldStr & " " & ModA_SQLString
End Function
chinaxc 2008-12-09
  • 打赏
  • 举报
回复
up呵呵
ChinaHappyCat 2008-12-09
  • 打赏
  • 举报
回复
up
jinjazz 2008-12-08
  • 打赏
  • 举报
回复
用ascii函数看看中间的"空格"是什么字符
lbj985 2008-12-08
  • 打赏
  • 举报
回复
这并非动态语句的问题,而是由于SQL语句太长,造成从某些字段中间截断。
我现在采用最笨的办法解决了:
每创建5个字段就增加一个回车符,这样就算再长,也不会从字段中间截断了。

各位还有其他的办法吗?
水族杰纶 2008-12-08
  • 打赏
  • 举报
回复
select Cust.ID as ID,Cust.CustNo as [客户编号],Cust.ID as [自动ID],Cust.CustNameALL_En as [英文全名],Cust.CustKindID as [客户类型ID],
Cust.Remark as [备忘录],Cust.CustName as [中文简称],Cust.CustNameALL as [中文全名],Cust.Isfail as [禁用],Cust.Countries as [国家],
Cust.Provinces as [地区],Cust.QY as [所属区域],Cust.SysEditDate as [修改日期],Cust.SysEditUser as [修改人],Cust.EMAIL as [EMAIL],
Cust.Address as [国内地址],Cust.SysAddDate as [建档日期],Cust.Contacts as [联络人],Cust.FAX as [传真],Cust.CustName_En as [英文简称],
Cust.ZJM as [助记码],Cust.HY as [区域],Cust.JB as [级别],Cust.TEL as [电话],Cust.Address_En as [国外地址],Cust.HomePage as [网址],
Cust.SysAddUser as [建档人],Cust.SysPassDate as [审核日期],Cust.SysPassUser as [审核人],Cust.SysLockDate as [锁定日期],
Cust.SysLockUser as [锁定人],Cust.SysIsPass as [已审],Cust.SysIsLock as [已锁],CustKind.ID as [自动ID],CustKind.CustKindNo_ALL as [完整类型号],
CustKind.CustKindName_ALL as [完整类型名],CustKind.Parent as [所属类型],CustKind.CustKindNO as [类型号],
CustKind.CustKindName as [类型名],CustKind.Remark as [备注],CustKind.IsFail as [禁用],CustKind.SysAddDate as [建档日期],
CustKind.SysAddUser as [建档人],CustKind.SysEditDate as [修改日期],CustKind.SysEditUser as [修改人],CustKind.SysPassDate as [审核日期],
CustKind.SysPassUser as [审核人],CustKind.SysLockDate as [锁定日期],CustKind.SysLockUser as [锁定人],CustKind.SysIsPass as [已审],
CustKind.SysIsLock as [已锁] FROM Cust INNER JOIN
CustKind ON Cust.CustKindID = CustKind.ID
水族杰纶 2008-12-08
  • 打赏
  • 举报
回复
--你的動態的語句呢?
select Cust.ID as ID,Cust.CustNo as [客???],Cust.ID as [自?ID],Cust.CustNameALL_En as [英文全名],Cust.CustKindID as [客??型ID],
Cust.Remark as [?忘?],Cust.CustName as [中文??],Cust.CustNameALL as [中文全名],Cust.Isfail as [禁用],Cust.Countries as [?家],
Cust.Provinces as [地?],Cust.QY as [所??域],Cust.SysEditDate as [修改日期],Cust.SysEditUser as [修改人],Cust.EMAIL as [EMAIL],
Cust.Address as [??地址],Cust.SysAddDate as [建?日期],Cust.Contacts as [??人],Cust.FAX as [?真],Cust.CustName_En as [英文??],
Cust.ZJM as [助??],Cust.HY as [?域],Cust.JB as [??],Cust.TEL as [??],Cust.Address_En as [?外地址],Cust.HomePage as [网址],
Cust.SysAddUser as [建?人],Cust.SysPassDate as [?核日期],Cust.SysPassUser as [?核人],Cust.SysLockDate as [?定日期],
Cust.SysLockUser as [?定人],Cust.SysIsPass as [已?],Cust.SysIsLock as [已?],CustKind.ID as [自?ID],CustKind.CustKindNo_ALL as [完整?型?],
CustKind.CustKindName_ALL as [完整?型名],CustKind.Parent as [所??型],CustKind.CustKindNO as [?型?],
CustKind.CustKindName as [?型名],CustKind.Remark as [?注],CustKind.IsFail as [禁用],CustKind.SysAddDate as [建?日期],
CustKind.SysAddUser as [建?人],CustKind.SysEditDate as [修改日期],CustKind.SysEditUser as [修改人],CustKind.SysPassDate as [?核日期],
CustKind.SysPassUser as [?核人],CustKind.SysLockDate as [?定日期],CustKind.SysLockUser as [?定人],CustKind.SysIsPass as [已?],
CustKind.SysIsLock as [已?] FROM Cust INNER JOIN
CustKind ON Cust.CustKindID = CustKind.ID
等不到来世 2008-12-08
  • 打赏
  • 举报
回复
贴表结构没用,要把你如何使用这条动态语句的步骤写出来。

查询分析器是可以在一行内显示并执行这么长的语句的:
select Cust.ID as ID,Cust.CustNo as [客户编号],Cust.ID as [自动ID],Cust.CustNameALL_En as [英文全名],Cust.CustKindID as [客户类型ID],Cust.Remark as [备忘录],Cust.CustName as [中文简称],Cust.CustNameALL as [中文全名],Cust.Isfail as [禁用],Cust.Countries as [国家],Cust.Provinces as [地区],Cust.QY as [所属区域],Cust.SysEditDate as [修改日期],Cust.SysEditUser as [修改人],Cust.EMAIL as [EMAIL],Cust.Address as [国内地址],Cust.SysAddDate as [建档日期],Cust.Contacts as [联络人],Cust.FAX as [传真],Cust.CustName_En as [英文简称],Cust.ZJM as [助记码],Cust.HY as [区域],Cust.JB as [级别],Cust.TEL as [电话],Cust.Address_En as [国外地址],Cust.HomePage as [网址],Cust.SysAddUser as [建档人],Cust.SysPassDate as [审核日期],Cust.SysPassUser as [审核人],Cust.SysLockDate as [锁定日期],Cust.SysLockUser as [锁定人],Cust.SysIsPass as [已审],Cust.SysIsLock as [已锁],CustKind.ID as [自动ID],CustKind.CustKindNo_ALL as [完整类型号],CustKind.CustKindName_ALL as [完整类型名],CustKind.Parent as [所属类型],CustKind.CustKindNO as [类型号],CustKind.CustKindName as [类型名],CustKind.Remark as [备注],CustKind.IsFail as [禁用],CustKind.SysAddDate as [建档日期],CustKind.SysAddUser as [建档人],CustKind.SysEditDate as [修改日期],CustKind.SysEditUser as [修改人],CustKind.SysPassDate as [审核日期],CustKind.SysPassUser as [审核人],CustKind.SysLockDate as [锁定日期],CustKind.SysLockUser as [锁定人],CustKind.SysIsPass as [已审],CustKind.SysIsLock as [已锁] FROM Cust INNER JOIN CustKind ON Cust.CustKindID = CustKind.ID


我怀疑你把得到的语句先考到别的地方(比如文本编辑器),被加入了其它格式(比如各种换行符),再拷到查询分析器就变样了。
flairsky 2008-12-08
  • 打赏
  • 举报
回复
经常有人提到,用动态生成SQL语句的方法处理数据时,处理语句超长,无法处理的问题
下面就讨论这个问题:

/*-- 数据测试环境 --*/
if exists (select * from dbo.sysobjects where id = object_id(N'[tb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [tb]
GO

create table tb(单位名称 varchar(10),日期 datetime,销售额 int)
insert into tb
select 'A单位','2001-01-01',100
union all select 'B单位','2001-01-02',101
union all select 'C单位','2001-01-03',102
union all select 'D单位','2001-01-04',103
union all select 'E单位','2001-01-05',104
union all select 'F单位','2001-01-06',105
union all select 'G单位','2001-01-07',106
union all select 'H单位','2001-01-08',107
union all select 'I单位','2001-01-09',108
union all select 'J单位','2001-01-11',109

/*-- 要求结果
日期 A单位 B单位 C单位 D单位 E单位 F单位 G单位 H单位 I单位 J单位
---------- ----- ----- ----- ----- ----- ----- ---- ---- ---- ------
2001-01-01 100 0 0 0 0 0 0 0 0 0
2001-01-02 0 101 0 0 0 0 0 0 0 0
2001-01-03 0 0 102 0 0 0 0 0 0 0
2001-01-04 0 0 0 103 0 0 0 0 0 0
2001-01-05 0 0 0 0 104 0 0 0 0 0
2001-01-06 0 0 0 0 0 105 0 0 0 0
2001-01-07 0 0 0 0 0 0 106 0 0 0
2001-01-08 0 0 0 0 0 0 0 107 0 0
2001-01-09 0 0 0 0 0 0 0 0 108 0
2001-01-11 0 0 0 0 0 0 0 0 0 109
--*/

/*-- 常规处理方法*/
declare @sql varchar(8000)
set @sql='select 日期=convert(varchar(10),日期,120)'
select @sql=@sql+',['+单位名称
+']=sum(case 单位名称 when '''+单位名称+''' then 销售额 else 0 end)'
from(select distinct 单位名称 from tb) a
exec(@sql+' from tb group by convert(varchar(10),日期,120)')


/*-- 问题: 如果单位很多,这时,@SQL的值就会被截断,从而出错.*/

/*--下面给出三种解决办法:--*/

--/*-- 方法1. 多个变量处理

--定义变量,估计需要多少个变量才能保存完所有数据
declare @sql0 varchar(8000),@sql1 varchar(8000)
--,...@sqln varchar(8000)

--生成数据处理临时表
select id=identity(int,0,1),groupid=0
,值=',['+单位名称 +']=sum(case 单位名称 when '''
+单位名称+''' then 销售额 else 0 end)'
into #temp from(select distinct 单位名称 from tb) a

--分组临时表,判断慨最多多少个单位可以组合成一个不超过8000的字符串,这里取假设为5个
update #temp set groupid=id/5 --5为每组的单位个数

--生成SQL语句处理字符串
--初始化
select @sql0=''
,@sql1=''
-- ...
-- ,@sqln

--得到处理字符串
select @sql0=@sql0+值 from #temp where groupid=0 --第一个变量
select @sql1=@sql1+值 from #temp where groupid=1 --第二个变量
--select @sqln=@sqln+值 from #temp where groupid=n --第n个变量

--查询
exec('select 日期=convert(varchar(10),日期,120)'
+@sql0+@sql1
-- ...+@sqln
+' from tb group by convert(varchar(10),日期,120)
')

--删除临时表
drop table #temp

/*
优点:比较灵活,数据量大时只需要增加变量就行了.不用改动其他部分
缺点:要自行估计处理的数据,估计不足就会出错
*/
--*/

--/*--方法2. bcp+isql

--因为要用到bcp+isql,所以需要这些信息
declare @servername varchar(250),@username varchar(250),@pwd varchar(250)
select @servername='zj' --服务器名
,@username='' --用户名
,@pwd='' --密码

declare @tbname varchar(50),@sql varchar(8000)

--创建数据处理临时表
set @tbname='[##temp_'+convert(varchar(40),newid())+']'
set @sql='create table '+@tbname+'(值 varchar(8000))
insert into '+@tbname+' values(''create view '
+stuff(@tbname,2,2,'')+' as
select 日期=convert(varchar(10),日期,120)'')'
exec(@sql)

set @sql='insert into '+@tbname+'
select '',[''+单位名称+'']=sum(case 单位名称 when ''''''
+单位名称+'''''' then 销售额 else 0 end)''
from(select distinct 单位名称 from tb) a'
exec(@sql)

set @sql='insert into '+@tbname+'
values(''from tb group by convert(varchar(10),日期,120)'')'
exec(@sql)

--生成创建视图的文件,注意使用了文件:c:\temp.txt
set @sql='bcp "'+@tbname+'" out "c:\temp.txt" /S"'
+@servername+'" /U"'+@username+'" /P"'+@pwd+'" /c'
exec master..xp_cmdshell @sql

--删除临时表
set @sql='drop table '+@tbname
exec(@sql)

--调用isql生成数据处理视图
set @tbname=stuff(@tbname,2,2,'')
set @sql='isql /S"'+@servername
+case @username when '' then '" /E' else '" /U"'+@username+'" /P"'+@pwd+'"' end
+' /d"'+db_name()+'" /i"c:\temp.txt"'

exec master..xp_cmdshell @sql

--调用视图,显示处理结果
set @sql='select * from '+@tbname+'
drop view '+@tbname
exec(@sql)

/*
优点:程序自动处理,不存在判断错误的问题
缺点:复杂,经过的步骤多,容易出错,而且需要一定的操作员权限
*/
--*/

--/*-- 方法3. 多个变量处理,综合了方法1及方法2的优点, 解决了方法1中需要人为判断的问题,自动根据要处理的数据量进行变量定义,同时又避免了方法2的繁琐

declare @sqlhead varchar(8000),@sqlend varchar(8000)
,@sql1 varchar(8000),@sql2 varchar(8000),@sql3 varchar(8000),@sql4 varchar(8000)
,@i int,@ic varchar(20)

--生成数据处理临时表
select id=identity(int,0,1),gid=0
,a=',['+单位名称 +']=sum(case 单位名称 when '''
+单位名称+''' then 销售额 else 0 end)'
into # from(select distinct 单位名称 from tb) a

--判断需要多少个变量来处理
select @i=max(len(a)) from #
print @i
set @i=7800/@i

--分组临时表
update # set gid=id/@i
select @i=max(gid) from #

--生成数据处理语句
select @sqlhead='''select 日期=convert(varchar(10),日期,120)'''
,@sqlend=''' from tb group by convert(varchar(10),日期,120)'''
,@sql1='',@sql2='select ',@sql3='',@sql4=''

while @i>=0
select @ic=cast(@i as varchar),@i=@i-1
,@sql1='@'+@ic+' varchar(8000),'+@sql1
,@sql2=@sql2+'@'+@ic+'='''','
,@sql3='select @'+@ic+'=@'+@ic+'+a from # where gid='+@ic
+char(13)+@sql3
,@sql4=@sql4+',@'+@ic

select @sql1='declare '+left(@sql1,len(@sql1)-1)+char(13)
,@sql2=left(@sql2,len(@sql2)-1)+char(13)
,@sql3=left(@sql3,len(@sql3)-1)
,@sql4=substring(@sql4,2,8000)

--执行
exec( @sql1+@sql2+@sql3+'
exec('+@sqlhead+'+'+@sql4+'+'+@sqlend+')'
)

--删除临时表
drop table #
--*/


方法3中,关键要做修改的是下面两句,其他基本上不用做改变:

--生成数据处理临时表,修改a=后面的内容为相应的处理语句
select id=identity(int,0,1),gid=0
,a=',['+code+']=sum(case b.c_code when '''
+code+''' then b.value else 0 end)'
into # from #Class

--生成数据处理语句,将@sqlhead,@sqlend赋值为相应的处理语句头和尾
select @sqlhead='''select a.id,a.name,a.code'''
,@sqlend=''' from #Depart a,#Value b where a.Code=b.d_Code group by a.id,a.code,a.name'''
,@sql1='',@sql2='select ',@sql3='',@sql4=''
flairsky 2008-12-08
  • 打赏
  • 举报
回复
分成几段

然后用 exec @sql1+@sql2+@sql3...
zlhran 2008-12-08
  • 打赏
  • 举报
回复
一般不会存在过长的问题
检查下是否有非法字符 或者编码之类的问题
tjg5202 2008-12-08
  • 打赏
  • 举报
回复
好长的一段呀
lbj985 2008-12-08
  • 打赏
  • 举报
回复
为方便大家调试,将应用的两个表发出来:
CREATE TABLE [Cust] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[CustNo] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ZJM] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustName_En] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustNameALL] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustNameALL_En] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustKindID] [int] NULL ,
[QY] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[HY] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[JB] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Isfail] [bit] NULL CONSTRAINT [DF_Cust_Isfail] DEFAULT (0),
[Countries] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Provinces] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Address] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Address_En] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[TEL] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[FAX] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[HomePage] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[EMAIL] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Contacts] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Remark] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[SysAddDate] [datetime] NULL ,
[SysAddUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysEditDate] [datetime] NULL ,
[SysEditUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysPassDate] [datetime] NULL ,
[SysPassUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysLockDate] [datetime] NULL ,
[SysLockUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysIsPass] [bit] NULL CONSTRAINT [DF_Cust_SysIsPass] DEFAULT (0),
[SysIsLock] [bit] NULL CONSTRAINT [DF_Cust_SysIsLock] DEFAULT (0),
CONSTRAINT [PK_Cust] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
) ON [PRIMARY]
GO


CREATE TABLE [CustKind] (
[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[Parent] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustKindNO] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustKindName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[CustKindNo_ALL] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[CustKindName_ALL] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Remark] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[IsFail] [bit] NULL CONSTRAINT [DF_CustKind_IsFail] DEFAULT (0),
[SysAddDate] [datetime] NULL ,
[SysAddUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysEditDate] [datetime] NULL ,
[SysEditUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysPassDate] [datetime] NULL ,
[SysPassUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysLockDate] [datetime] NULL ,
[SysLockUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[SysIsPass] [bit] NULL CONSTRAINT [DF_CustKind_SysIsPass] DEFAULT (0),
[SysIsLock] [bit] NULL CONSTRAINT [DF_CustKind_SysIsLock] DEFAULT (0),
CONSTRAINT [PK_CustKind] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
) ON [PRIMARY]
GO


lbj985 2008-12-08
  • 打赏
  • 举报
回复
放到SQL的查询分析器中就变成了
CustKind.CustKindNO as [类型号],Cu stKind.CustKindName as [类型名],
多了一个空格了
lbj985 2008-12-08
  • 打赏
  • 举报
回复
原来在插入的SQL语句中不能再用颜色代码呵,再发一次
select Cust.ID as ID,Cust.CustNo as [客户编号],Cust.ID as [自动ID],Cust.CustNameALL_En as [英文全名],Cust.CustKindID as [客户类型ID],Cust.Remark as [备忘录],Cust.CustName as [中文简称],Cust.CustNameALL as [中文全名],Cust.Isfail as [禁用],Cust.Countries as [国家],Cust.Provinces as [地区],Cust.QY as [所属区域],Cust.SysEditDate as [修改日期],Cust.SysEditUser as [修改人],Cust.EMAIL as [EMAIL],Cust.Address as [国内地址],Cust.SysAddDate as [建档日期],Cust.Contacts as [联络人],Cust.FAX as [传真],Cust.CustName_En as [英文简称],Cust.ZJM as [助记码],Cust.HY as [区域],Cust.JB as [级别],Cust.TEL as [电话],Cust.Address_En as [国外地址],Cust.HomePage as [网址],Cust.SysAddUser as [建档人],Cust.SysPassDate as [审核日期],Cust.SysPassUser as [审核人],Cust.SysLockDate as [锁定日期],Cust.SysLockUser as [锁定人],Cust.SysIsPass as [已审],Cust.SysIsLock as [已锁],CustKind.ID as [自动ID],CustKind.CustKindNo_ALL as [完整类型号],CustKind.CustKindName_ALL as [完整类型名],CustKind.Parent as [所属类型],CustKind.CustKindNO as [类型号],Cu
stKind.CustKindName as [类型名],CustKind.Remark as [备注],CustKind.IsFail as [禁用],CustKind.SysAddDate as [建档日期],CustKind.SysAddUser as [建档人],CustKind.SysEditDate as [修改日期],CustKind.SysEditUser as [修改人],CustKind.SysPassDate as [审核日期],CustKind.SysPassUser as [审核人],CustKind.SysLockDate as [锁定日期],CustKind.SysLockUser as [锁定人],CustKind.SysIsPass as [已审],CustKind.SysIsLock as [已锁] FROM Cust INNER JOIN
CustKind ON Cust.CustKindID = CustKind.ID


在CustKind.CustKindNO as [类型号],Cu
stKind.CustKindName as [类型名],
这一段被截断

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧