Sql server 在SQLServer2005中更改触发器

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

我需要在SQLServer2005中修改触发器,我想使用表适配器和sql语句来完成,而不是使用存储过程。我知道我可以在查询浏览器中运行它并执行它,但我需要跨多个数据库部署它,并在更新中使用表适配器。这可能吗

执行添加查询->更新->粘贴下面的代码->查询生成器以查看它是否解析

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();
}