Sql server 在SQLServer2005中更改触发器
我需要在SQLServer2005中修改触发器,我想使用表适配器和sql语句来完成,而不是使用存储过程。我知道我可以在查询浏览器中运行它并执行它,但我需要跨多个数据库部署它,并在更新中使用表适配器。这可能吗 执行添加查询->更新->粘贴下面的代码->查询生成器以查看它是否解析Sql server 在SQLServer2005中更改触发器,sql-server,sql-server-2005,triggers,tableadapter,alter,Sql Server,Sql Server 2005,Triggers,Tableadapter,Alter,我需要在SQLServer2005中修改触发器,我想使用表适配器和sql语句来完成,而不是使用存储过程。我知道我可以在查询浏览器中运行它并执行它,但我需要跨多个数据库部署它,并在更新中使用表适配器。这可能吗 执行添加查询->更新->粘贴下面的代码->查询生成器以查看它是否解析 print("USE [DataBaseName] GO /****** Object: Trigger [dbo].[UpdateCurrentAddress] Script Date: 10/30/2008 1
print("USE [DataBaseName]
GO
/****** Object: Trigger [dbo].[UpdateCurrentAddress] Script Date: 10/30/2008 14:47:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[UpdateCurrentAddress] ON [dbo].[PreviousAddresses]
FOR INSERT, UPDATE, DELETE
AS
-- Check to see if there was an insert/update or a deletion.
IF (SELECT COUNT(*) FROM inserted) >= 1
BEGIN
IF (SELECT CountryID FROM inserted) <> 181
...moar...");
错误。。。
不支持使用[DataBaseName]SQL构造或语句
如果我取下上面的部分,然后从改变触发器开始
不支持ALTER TRIGGER SQL构造或语句
我对这一点还是相当陌生的,我不会感到惊讶,因为我要么走错了路,要么没有存储过程就不可能做到
编辑:是的,我是用C语言写的
谢谢。我可以这样做,从ALTER TRIGGER开始,这将完成任务。TableAdapter需要的是结果集,而不是实际的查询。要成功完成此操作,您需要使用SqlCommand对象来实际生成更新 如果在非常简单之前没有使用过连接,那么首先声明连接,然后使用连接创建命令。创建命令后,将commandtext设置为脚本,然后可以在打开连接后调用ExecuteOnQuery方法运行脚本。如果你说你用的是什么语言,我可以试着举个例子 编辑 下面是一个C示例,快速而肮脏,但它能让人理解这一点。注意,从内存中完成,但应该是正确的
using(SqlConnection oConnection = new SqlConnection("Yourconnectionhere"))
using(SqlCommand oCommand = new SqlCommand(oConnection))
{
//Configure the command object
oCommand.CommandText = "Your script here";
//Open connectin and run script
oConnection.Open();
oCommand.ExecuteNonQuery();
oConnection.Close();
}