大侠们,帮看看怎么解决这个错误问题?

「已注销」 程序员  2013-01-21 12:29:15

exec sp_addlinkedserver 'DD', '', 'SQLOLEDB','192.168.11.234'
exec sp_addlinkedsrvlogin 'DD','false',null,'sa','hello'

Go
CREATE TRIGGER DepInsertForSync
ON Department
FOR INSERT
AS
SET NOCOUNT ON
SET XACT_ABORT ON
INSERT INTO DD.sync.dbo.HIS_CSYSDEPT(--错误在此
'HIS_CSYSDEPTId',
'DEPT_NO',
'DEPT_CNAME',
'DEPT_ENAME'
)
SELECT
Dep.DepartmentId,
Dep.Code,
Dep.Name
FROM Department Dep
INNER JOIN Inserted vir ON vir.DepartmentId = Dep.DepartmentId

错误信息:
为不是函数的对象 'DD.sync.dbo.HIS_CSYSDEPT' 提供了参数。如果这些参数要作为表提示,则需要使用 WITH 关键字。
怎么解决?没用过with呢?
...全文
156 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
發糞塗牆 2013-01-21
exec sp_addlinkedserver   'DD', '', 'SQLOLEDB','192.168.11.234'
exec sp_addlinkedsrvlogin 'DD','false',null,'sa','hello'
  
 Go 
CREATE TRIGGER DepInsertForSync 
ON Department                        
FOR INSERT                       
AS   
  SET NOCOUNT ON
  SET XACT_ABORT ON   
   INSERT INTO DD.sync.dbo.HIS_CSYSDEPT
   values( 
    'HIS_CSYSDEPTId', 
    'DEPT_NO', 
    'DEPT_CNAME', 
    'DEPT_ENAME'
   )   
   SELECT 
   Dep.DepartmentId, 
   Dep.Code, 
   Dep.Name  
   FROM Department Dep 
   INNER JOIN Inserted vir ON  vir.DepartmentId = Dep.DepartmentId
  • 打赏
  • 举报
回复
bashen1101 2013-01-21
1。列名上单引号去掉,不然就成字符串了 2。要插入的列数量要与插入值的列数量相同
  • 打赏
  • 举报
回复
發糞塗牆 2013-01-21
去了引号还要去掉一列,不然一样报错
  • 打赏
  • 举报
回复
「已注销」 2013-01-21
引用 5 楼 szm341 的回复:
把列名的单引号去掉呢 INSERT INTO DD.sync.dbo.HIS_CSYSDEPT( HIS_CSYSDEPTId, DEPT_NO, DEPT_CNAME, DEPT_ENAME )
是啊,晕了
  • 打赏
  • 举报
回复
szm341 2013-01-21
把列名的单引号去掉呢 INSERT INTO DD.sync.dbo.HIS_CSYSDEPT( HIS_CSYSDEPTId, DEPT_NO, DEPT_CNAME, DEPT_ENAME )
  • 打赏
  • 举报
回复
發糞塗牆 2013-01-21
我不知道你的表结构,所以你要自己测试了,你insert那里是4列,select 才3列,肯定报错的。
  • 打赏
  • 举报
回复
發糞塗牆 2013-01-21
exec sp_addlinkedserver   'DD', '', 'SQLOLEDB','192.168.11.234'
exec sp_addlinkedsrvlogin 'DD','false',null,'sa','hello'
  
 Go 
CREATE TRIGGER DepInsertForSync 
ON Department                        
FOR INSERT                       
AS   
  SET NOCOUNT ON
  SET XACT_ABORT ON   
   INSERT INTO DD.sync.dbo.HIS_CSYSDEPT(  
    DEPT_NO, 
    DEPT_CNAME, 
    DEPT_ENAME
   )   
   SELECT 
   Dep.DepartmentId, 
   Dep.Code, 
   Dep.Name  
   FROM Department Dep 
   INNER JOIN Inserted vir ON  vir.DepartmentId = Dep.DepartmentId
  • 打赏
  • 举报
回复
「已注销」 2013-01-21
引用 1 楼 DBA_Huangzj 的回复:
SQL code?1234567891011121314151617181920212223exec sp_addlinkedserver 'DD', '', 'SQLOLEDB','192.168.11.234'exec sp_addlinkedsrvlogin 'DD','false',null,'sa','hello' Go CREATE TRIGGER ……
不对吧,你写的意思不就是将
values(
    'HIS_CSYSDEPTId',
	'DEPT_NO',
	'DEPT_CNAME',
	'DEPT_ENAME')
作为值写入了吗?我要的是后面的select中的值
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2013-01-21 12:29
社区公告
暂无公告