必须声明标量变量“ @MyNewID”

时间:2019-04-11 21:57:30

标签: sql sql-server uniqueidentifier

我试图通过使用数字池为表“ Students”中的每一行分配唯一ID(因此,表为UNIQUE_NUMBERS)。

我不确定我的实现是否正确,但是我不断收到错误消息。有人可以协助这段代码吗?

我正在创建一个Web应用程序,该应用程序在数据库表中添加/编辑/删除学生。我正在尝试确保每个用户都有一个不超过8个数值的唯一标识符

CREATE TABLE DBO.UNIQUE_NUMBERS
(
  UNIQUE_NUMBER INT
)

INSERT INTO DBO.UNIQUE_NUMBERS (UNIQUE_NUMBER)
  VALUES ('1000')

DECLARE @MyNewID VARCHAR(8);
DECLARE @NextNo INT; 

UPDATE DBO.UNIQUE_NUMBERS
  SET UNIQUE_NUMBER = UNIQUE_NUMBER +1, @NextNo = UNIQUE_NUMBER;

SET @MyNewID = REPLACE(STR(@NextNo,8),'','0');

INSERT INTO DBO.STUDENTS (STUDENT_ID, STUDENT_FIRSTNAME, STUDENT_SURNAME)
  VALUES    ('SID'+ (SELECT * FROM DBO.UNIQUE_NUMBERS)  , 'Daenerys' , 'Targaryen' ),
        ('SID'+ @MyNewID , 'Jon' , 'Snow' ),
        ('SID'+ @MyNewID , 'Gregor' , 'Clegane' ),
        ('SID'+ @MyNewID , 'Arya' , 'Stark' ),
        ('SID'+ @MyNewID , 'Cersei' , 'Lannister' ),
        ('SID'+ @MyNewID , 'Joffrey' , 'Baratheon' ),
        ('SID'+ @MyNewID , 'Petyr' , 'Baelish' ),
        ('SID'+ @MyNewID , 'Khal' , 'Drogo' ),
        ('SID'+ @MyNewID , 'Theon' , 'Greyjoy' ),
        ('SID'+ @MyNewID , 'Ramsey' , 'Bolton' )

当我通过Web应用程序视图查看数据时,STUDENT_ID应该显示为以下示例:

STD12345678

然后为下一个学生增加:

STD12345679

1 个答案:

答案 0 :(得分:2)

这样的事情-

% gcc test.c -o test -Wl,--build-id=sha1