Joe*_*ips 13 sql variables sql-server-2008-r2
为什么这样做......
DECLARE @MyInt int = 12345;
SELECT * FROM MyTable WHERE MyId = @MyInt; --Returns 1 row
SELECT * FROM MyTable WHERE MyId = 12345; --Returns 1 row
Run Code Online (Sandbox Code Playgroud)
但这不是吗?
DECLARE @MyVarchar varchar = 'ABCDEF';
SELECT * FROM MyTable WHERE MyId = @MyVarchar; --Returns 0 rows
SELECT * FROM MyTable WHERE MyId = 'ABCDEF'; --Returns 1 row
Run Code Online (Sandbox Code Playgroud)
SQL Server版本是10.50.1746
GSe*_*erg 19
因为当你declare,默认varchar长度是1.所以@MyVarchar最终成为了'A'.
这是不同的cast(something as varchar),其中默认长度30.
正确的是
DECLARE @MyVarchar varchar(10) = 'ABCDEF';
Run Code Online (Sandbox Code Playgroud)
10表格中列的长度在哪里.
| 归档时间: |
|
| 查看次数: |
6686 次 |
| 最近记录: |