我使用的是SQL Server 2012,我的主要目标是以编程方式DROP ROLE,但除非角色为空,否则无法完成,那么我如何使用T-SQL首先删除角色的所有成员?
我可以找到角色的所有成员:
SELECT members.[name]
FROM sys.database_role_members AS rolemembers
JOIN sys.database_principals AS roles
ON roles.[principal_id] = rolemembers.[role_principal_id]
JOIN sys.database_principals AS members
ON members.[principal_id] = rolemembers.[member_principal_id]
WHERE roles.[name]=@rolename
Run Code Online (Sandbox Code Playgroud)会员可以使用以下方式删除
ALTER ROLE role_name DROP MEMBER user_name
Run Code Online (Sandbox Code Playgroud)我怎样才能将这两者结合起来?或者还有另一种方法可以做我想做的事情吗?
(另外,我不确定这是否重要,但我将在Entity Framework 6迁移中使用它)
我有一个用户模型和一个组模型.用户和组共享多对多关系.当我将其转换为表格时,我希望有一个映射表.我使用以下来实现这一目标.
modelBuilder.Entity<UserGroup>()
.HasMany(a => a.Users)
.WithMany(b => b.UserGroup)
.Map(mc =>
{
mc.ToTable("UserUserGroupMapping");
mc.MapLeftKey("UserId");
mc.MapRightKey("UserGroupId");
});
Run Code Online (Sandbox Code Playgroud)
这将创建一个以UserId和UserGroupId为列的表.但是我几乎没有挑战,
我希望能够在此表中添加一个Identity列,并向表中添加一些审计列(例如:创建者,创建日期).我不知道该怎么做.
有人能帮我一下吗?
谢谢
entity-framework ef-code-first ef-migrations entity-framework-6
我正在尝试使用Signalr开发一个网站SqlDependency.我启用了Service Broker并运行了以下T SQL:
GRANT CREATE PROCEDURE TO [SqlUser];
GRANT CREATE SERVICE TO [SqlUser];
GRANT CREATE QUEUE TO [SqlUser];
GRANT REFERENCES ON CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification] TO [SqlUser];
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [SqlUser];
GRANT CONTROL ON SCHEMA::[dbo] TO [SqlUser];
GRANT IMPERSONATE ON USER::DBO TO [SqlUser];
Run Code Online (Sandbox Code Playgroud)
但是当我运行网站时,我收到以下错误:
找不到指定的用户'所有者'.
找不到队列'SqlQueryNotificationService-ce08361b-7c12-412a-a087-495959118214',因为它不存在或您没有权限.
无效的对象名称'SqlQueryNotificationService-ce08361b-7c12-412a-a087-495959118214'.
protected void Application_Start()
{
SqlDependency.Start(
ConfigurationManager
.ConnectionStrings["CiaosConnectionString"].ConnectionString);
//WebApiConfig.Register(GlobalConfiguration.Configuration);
GlobalConfiguration.Configure(WebApiConfig.Register);
Run Code Online (Sandbox Code Playgroud)
有人可以帮我找到问题吗?