如何测试 SQL Server 中用户是否存在?
我想在 SQL Server 脚本中删除用户,但我需要先测试用户是否存在,否则会出现脚本错误。 删除表或存储过程时,我会像这样检查 sysobjects 表:
IF EXISTS (
SELECT *
FROM sysobjects
WHERE id = object_id(N'[dbo].[up_SetMedOptions]')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1
)
Drop Procedure up_SetMedOptions;
GO
检查用户的推论是什么? 请注意,我不是在询问服务器的数据库登录! 该问题与特定数据库中的用户有关。
I'd like to drop a user in a SQL Server script but I'll need to test for existence first or I'll get script errors. When dropping tables or stored procs, I check the sysobjects table like so:
IF EXISTS (
SELECT *
FROM sysobjects
WHERE id = object_id(N'[dbo].[up_SetMedOptions]')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1
)
Drop Procedure up_SetMedOptions;
GO
What is the corollary for checking for a user? Note that I am NOT asking about a database login to the server! The question pertains to a User in a specific database.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
SSMS 按以下方式编写脚本:
对于 SQL 2005/2008 及更高版本:
对于 SQL 2000:
SSMS scripts it in the following way:
For SQL 2005/2008 and later:
For SQL 2000:
在 SQL 2005 中:
在 SQL 2000 中:
In SQL 2005:
In SQL 2000:
下面的代码对我有用。
The code below worked for me.