小编use*_*365的帖子

在此表中插入数字时如何保留前导零?

我在一个表中插入了两条记录。

create table num(id int)
insert into num values(0023)
insert into num values(23)
select * from num
Run Code Online (Sandbox Code Playgroud)

当我查询它们时,它们都显示为23. 这意味着 SQL Server 忽略前导 0。这背后的机制是什么?我如何让 SQL Server 在我插入它们时返回值(即002323)?

sql-server-2008 sql-server

10
推荐指数
2
解决办法
11万
查看次数

如何在 SQL Server 中删除变量

我在 SQL Server 中声明了一个变量: Declare @variable

当我不需要变量时,如何删除或启用它?

sql-server

7
推荐指数
1
解决办法
5万
查看次数

SQL Server 中的标准视图和索引视图有什么区别

我了解到索引视图保存来自基表的数据,而标准视图不保存数据。这是否意味着索引视图需要内存而标准视图不需要?

索引视图需要与架构对象绑定。我也对架构绑定对象中不允许使用“*”这一点感到困惑。例如:

create view viewname as select * from tablename
Run Code Online (Sandbox Code Playgroud)

上面的说法是行不通的。为什么?

database-design sql-server materialized-view

7
推荐指数
1
解决办法
5432
查看次数

函数和存储过程有什么区别?

我听说 SQL Server 中函数和存储过程的区别在于函数不存储在数据库中,而存储过程存储在数据库中。

真的吗?如果不是,它们之间有什么区别?

另外,我知道存储过程只编译一次,然后直接执行。函数呢?

sql-server stored-procedures functions

3
推荐指数
1
解决办法
7225
查看次数

当我告诉光标时,它不打印文本

WAITFOR在以下脚本中与游标结合使用:

create table orders(orderId int primary key,productId int,productName varchar(20));

insert into orders values(1,11,'book');
insert into orders values(2,13,'flower');
insert into orders values(3,24,'microwave');
insert into orders values(4,7,'food');
insert into orders values(5,46,'clothes');

declare cur cursor for   
select * from orders;
open cur;
fetch next from cur;
while(@@fetch_status=0)
begin
    waitfor delay '00:00:01';
    fetch next from cur;
end;
close cur;
deallocate cur;
Run Code Online (Sandbox Code Playgroud)

我希望每 1 秒的指定间隔显示来自光标的一条记录。例如:显示第一行,然后等待一秒钟;显示第二行,然后稍等;等等。上面的光标不会这样做。说orders有 5 行。该WHILE块等待 5 秒钟,然后一起显示所有记录。

这是游标的错吗?如何修改此脚本以按预期工作?

sql-server-2008 sql-server cursors

1
推荐指数
1
解决办法
3697
查看次数