Zam*_*lad 1 sql sql-server sql-server-2008 sql-server-2008-r2
所以我现在整天都在和这个问题作斗争.起初我认为必须使用我的调用代码,即使这一切看起来都不错.调用代码只是来自VB代码隐藏文件的标准调用,并且无论如何都没有链接到数据绑定.我提到这一点,因为我已经看到很多其他人因为DataGrids等而遇到了这个问题.
然后我转到数据库本身并手动执行该过程,它在SQL Sevrer Manager中给出了相同的错误.我已经尝试删除程序并重新创建它,甚至从头开始重写它仍然会发生.我也尝试从@Password参数中删除默认的NULL值,但仍然没有更改.
我正在运行SQL Server 2008 R2
这是程序代码:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_AddUser]
@Username varchar(50),
@Fullname varchar(50),
@Password varchar(50) = NULL,
@Datecreated DateTime,
@RoleID int,
@ResetPwd bit,
@Email varchar(50),
@locked bit,
@Sign varchar(max),
@Sysuser bit
AS
BEGIN
INSERT INTO users (
user_name,
full_name,
password,
datetime_created,
role_id,
password_reset,
email_address,
locked,
email_signature,
asrsys_user)
VALUES (
@Username,
@Fullname,
@Password,
@Datecreated,
@RoleID,
@ResetPwd,
@Email,
@locked,
@Sign,
@Sysuser)
END
Run Code Online (Sandbox Code Playgroud)
您应该避免使用sp_作为存储过程的前缀 - 它保留给Microsoft使用 - 并调用奇怪的查找规则(master在当前数据库之前搜索),这意味着MS要引入同名的SP(例如,通过例如服务包),MS SP将"赢".
但在这种情况下,微软已经 "赢了" - 他们有一个名为的存储过程sp_adduser,而且正是被调用的存储过程.重命名存储过程.