我有一个具有复合键的表,以便从两个不同的表中检索数据。我已经创建了存储过程来执行此操作并且工作正常:
存储过程:
ALTER PROC dbo.spp_adm_user_user_group_sel
AS
BEGIN
SET NOCOUNT ON
SELECT
g.name AS Group_Name, u.fullname, u.designation,
u.email, u.mobile
FROM
TBL_ADM_USER_GROUP g, TBL_ADM_USER u
WHERE
g.id = u.group_id
AND (g.deleted IS NULL OR g.deleted <> 1)
END
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
Group_name fullname designation email mobile
Alex fffffffff Engineer sss@mail.come 3333333333
Jon hhhhhhhhh programmer hh@mail.com 020202028347
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,存储过程没有任何参数。如何使用 C# 读取此输出并将其作为列表返回?
代码:
public List<string> GetData()
{
using (SqlConnection con = new SqlConnection(Global.Config.ConnStr))
{
string group;
DataTable dt = new DataTable();
List<string> details = new List<string>();
SqlCommand …
Run Code Online (Sandbox Code Playgroud) 我创建了触发器来记录所有更新的行,无论是一行还是多行,并将更新的行记录到另一个表中.触发器正常工作,有一条记录但是当我更新整个表时,例如:update TBL_ADM_USER_GROUP set name = '123'
只记录一条记录TBL_TestTable
?为什么只有一行登录TBL_TestTable
以及如何启用此触发器来记录所有更新的行?
触发:
CREATE TRIGGER [dbo].[Group_Update]
ON [dbo].[TBL_ADM_USER_GROUP]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @userid INT
DECLARE @name nvarchar(1000)
SELECT @userid = i.changer_user_id from inserted i;
select @name = i.name from inserted i;
INSERT INTO TBL_TestTable
VALUES (CONCAT('Group "' ,@name,'" is updated'), 'GROUP', 'Update', SYSDATETIME(), @userid)
END
Run Code Online (Sandbox Code Playgroud)