【发布时间】:2014-07-08 09:20:33
【问题描述】:
USE [AlphaGlobal]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TrInsertLocalUser]
ON [dbo].[Users]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
insert into AlphaLocal12.dbo.Users (PkUserId,Name,Address)
values(
(Select inserted.PkUserId from inserted),
(Select inserted.Name from inserted),
(Select inserted.Address from inserted),
(Select inserted.ZIPCode from inserted)
)
END
听说我想更改运行时插入查询数据库名称,例如 (AlphaLocal13, AlphaLocal14)。
那么如何更改数据库名称?
【问题讨论】:
-
请清楚地提及它的MYSQL或SQLSERVER??并删除其他标签
-
让触发器访问它自己的数据库之外的任何东西是个坏主意 - 数据库是 SQL 中恢复和可用性的单位,突然你将两个数据库捆绑在一起,使得原始事务无法成功如果第二个数据库(暂时)不可用。此外,
inserted可以包含 0、1 或 多个 行,因此您在INSERT中的子查询被破坏。
标签: mysql sql-server-2008 sql-server-2005