`
sistercry89
  • 浏览: 7448 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

sql 存储过程将nvarchar的值转化为int失败

 
阅读更多
假设有存储过程:proc_test2
create proc proc_test2
@Id int
begin
as
declare @sql varchar(max)
@sql = 'select * from test2 where 1=1'
if @Id <> 0
set @sql += ' and Id = ' +@Id
exec (@sql)
end

存储过程需要的参数是int类型,按道理直接传值(+@Id)是没有问题的,但是在执行存储过程的时候,却弹出
“sql 在将 nvarchar 值 转换成数据类型 int 时失败。”
这时候你需要转换一下就ok了!

正解是:set @sql += ' and Id = ' +Cast(@Id as nvarchar(50))
分享到:
评论

相关推荐

    SQLServer表数据转化为sql语句(存储过程,一键批量导出、导入)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件(传空时,导出全部...

    SQL中存储过程的创建和使用

    @test1 int, @test2 nvarchar(50) as insert into testtable values(@test1,@test2) return //select * from users where truename like '%[王刘]%' //只能分词查询,查询姓刘和姓王的信息 2 如何使用 ...

    SQL中存储过程的实例

    帮助那些想尽快学习存储过程 实例:create PROCEDURE pagination @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='', -- 排序的字段名 @PageSize int...

    解决繁体-批量转化varchar为nvarchar

    因最近自己制作的软件需运行在简繁系统中,但数据库设计时...此脚本可批量处理数据库内所有char和varchar转换为nchar和nvarchar,已集成重建主键,约束,索引,此脚本没有启用事务,运行前请备份原数据库或手动增加事务

    SQLServer生成所有外键存储过程

    SQLServer生成所有外键存储过程,需要一次性将所有varchar改为Nvarchar,有些表具有外键限制不能用代码改。用这个过程,不用再每个表都检查了,不然天量的字段,改到什么时候哦。

    SqlServer存储过程实现及拼接sql的注意点

    由于服务器原因,我不能直接在数据访问层写SQL,所以只好抽离出来放到存储过程里面。 这里就出现了一个问题,我花费了好久才弄通!  其实就是很简单的一个SQL语句:  update table1 set field1=value1,field2 ...

    从数据类型 nvarchar 转换为 numeric 时出错.pdf

    用友T+从数据类型 nvarchar 转换为 numeric 时出错.pdf

    如何将nvarchar,money和s​​mallmoney值转换为int

    本技巧使您可以将nvarchar,money和s​​mallmoney值转换为int。

    sql使用cast进行数据类型转换示例

    把str转换成int 类型 cast(@str as int) 您可能感兴趣的文章:详解SQL Server中的数据类型详解MySQL数据类型int(M)中M的含义mysql存储引擎和数据类型(二)Java数据类型与MySql数据类型对照表SQL Server数据类型...

    sql 存储过程分页

    CREATE PROC myx_prPageRecordset @queryStr nvarchar(1000), @keyField nvarchar (200), @pageSize int, @pageNumber int AS BEGIN DECLARE @sqlText AS nvarchar(4000) DECLARE @sqlTable AS ...

    sqlserver存储过程

    Declare @Sql nvarchar(225) set @n=0 While @n导入100条相同的数据进Users表 Begin Set @Sql='Insert into Users Values(''jilongliang'',''123456'',''广东阳春'')' Exec &#40;@Sql&#41; set @n=@n+1 ...

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc

    如果只更改了语句中的参数值,则 sp_executesql 可用来代替存储过程多次执行 Transact-SQL 语句。因为 Transact-SQL 语句本身保持不变,仅参数值发生变化,所以 SQL Server 查询优化器可能重复使用首次执行时所生成...

    Sqlserver中char,nchar,varchar与Nvarchar的区别分析

    Sqlserver中char,nchar,varchar与Nvarchar的区别分析,使用sqlserver的朋友可以参考下。

    全国省市县数据库sql server

    把sql语句里第一句的USE [HotelManager] GO中HotelManager改成你建立的数据库名。。。 T_province表 省 自治区 直辖市(一级) [serialId] [bigint] NOT NULL Id [provinceId] [nvarchar] NULL 省id ...

    sqlserver中将varchar类型转换为int型再进行排序的方法

    我们可以把varchar转换为int 然后进行排序一、 代码如下: select * from yourtable order by cast(yourcol as int); 适用于SQLServer Oracle 二、 代码如下: select * from yourtable order by convert(int,yourcol)...

    存储过程模板

    存储过程模板 --该存储过程批量生成新调查,会对每一个老师所带的每一个班级产生一次调查 create procedure proc_createInves as declare @count int declare @i int declare @j int declare @iType nvarchar(10) ...

    分页存储过程

    分页存储过程.SQL,@tblName nvarchar(max), ----要显示的表或多个表的连接 @fldName nvarchar(max) = '*', ---输出字段 @pageSize int = 10, ----每页显示的记录个数 @page int = 1, ----要显示那一...

    SQL2005课程设计

    create procedure 存储过程 as select b.学号,b.姓名,c.课程名,a.成绩,b.学分,c.学时,b.校名 from 成绩SQL0911061212 a,学生SQL0911061212 b,课程SQL0911061212 c where b.学分&gt;115 and b.学分 GO create ...

    SQL中varchar和nvarchar的基本介绍及其区别

    varchar(n) 长度为 n 个字节的可变...那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。 如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nva

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 易懂

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 --PL/SQL基础1 declare begin dbms_output.('不输出不换行'); dbms_output.put_line('输出并换行'); end; --PL/SQL基础2 declare dig number(20,...

Global site tag (gtag.js) - Google Analytics