解决sql server保存对象字符串转换成uniqueidentifier失败的问题_MsSql

来源:脚本之家  责任编辑:小易  

上面的那个保存按钮是将存储过程保存到磁盘上的。存储过程你直接创建的话执行完了就新建成功了。CREATE PROCEDURE 存储过程名 这个是创建存储过程ALTER PROCEDURE 存储过程名 这个是修改存储过程www.zgxue.com防采集请勿采集本网。

一、 背景介绍

一般,你把图片的地址存放在数据库就行了,这样效率高,如果要存图片,就得读取图片,将其转成二进制才行,这样很麻烦的,建议你直接存放地址就行了

web应用采用的是ssh框架,数据库使用的sql server2014版本。

sql server存储过程 输出结果集 还是比较简单的. 直接在 存储过程里面执行 SQL 语句就可以了。 例如: -- 测试返回结果集的存储过程 CREATE PROCEDURE testProc A

二、问题:

执行你编写的 create procedure 才是在数据库中创建存储过程 保存只是把sql语句保存在硬盘上了

客户要求,ID列的数据类型必须是uniqueidentifier,一开始实体类的ID设计成java.lang.String类型;映射文件中ID的增长方式是uuid.hex

启动SQL SERVER 2008,选择菜单 工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器。然后去掉“ 阻止保存要求重新创建表的更改”前面的勾。重新启动SQL SER

private java.lang.String id;public java.lang.String getId(){return id;}public void setId(java.lang.String id){this.id=id;}

分离数据库,然后把数据库文件和日志文件移动到你要保存的位置。然后数据库附加就行了。

<id name="id" column="ID" type="java.lang.String"><generator class="uuid.hex"></generator></id>

数据库只是存放图片、音乐等多媒体信息的 地址 路径

在执行保存时报错:将字符串uniqueidentifier 时失败。

使用lock 具体的可以去msdn上去看

三、解决方案:

一、创建数据 创建时直接修改成你要的路径,主体和日志文件都可以修改 二、已经存在的数据库 你可以先分离数据库,到C:\Program Files\Microsoft SQL Server&

将映射文件中ID的增长方式修改为“assigned”,在程序中赋值。

“对于长篇文章比如数千字的如何用SQL server保存进数据库里 ” 可以直接存储到CHAR数据类型的字段 “还有就是图片怎么能保存到sql里” 将图片进行二进制转换,存

/*映射文件*/<id name="id" column="ID" type="java.lang.String"><generator class="assigned"></generator></id>/*赋值代码*/UUID uuid = java.util.UUID.randomUUID();object.setId(uuid.toString);this.save(object);

如果要去掉此提示,打开SQL 2008 在最上面 工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去掉就可以了。

附:创建表的语句

把变量@sql 声明成nvarchar(4000)就行了,因为sp_executesql的@statement参数只接受Unicode字符。 declare @sql nvarchar(4000)

CREATE TABLE tableName ( ID UNIQUEIDENTIFIER, --省略其他代码 );

insert into ##tempgetmonthNG1 select . union select . union select . union select . union select . select * from ##tempgetmonthNG1 以上,希望对你有

补充知识:SQLServer中uniqueidentifier数据类型理解

数据库存储时间,如果字段类型是DATATIME类型的,数据库默认存储是精确到毫秒的。 想得到你想要的时间格式,需要在取到resultset的sql语句中进行一次格式转化 CONVER

uniqueidentifier可以理解为全局唯一标示符(GUID),可以使用newid函数初始化值,将字符串常量转换为如下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字)。

默认的路径在:D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data或者 C:\Program Files\Microsoft SQL Server\MSSQ

例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 uniqueidentifier 值。

,选"SQL Server 2005";(如果是要用的SQL2000中,那就选SQL Server 2000) 点下一步. 在"输出选项"对话框中,选"将脚本保存到文件",其他默认

比较运算符可与 uniqueidentifier 值一起使用。然而,排列并非通过比较两个值的位模式来实现。允许对 uniqueidentifier 值执行的操作只有比较 (=, <>, <, >, <=, >=) 和检查 NULL(IS NULL 和 IS NOT NULL)。

不允许使用其它算术运算符。所有的列约束及属性(IDENTITY 除外)均允许用于 uniqueidentifier 数据类型。

declare @myid uniqueidentifierset @myid=newid()print 'Value of @myid is '+cast(@myid as varchar(255))

每次运行以上程序返回不同的uniqueidentifier

uniqueidentifier 数据类型不象IDENTITY 属性那样为新插入的行自动生成新的ID。

为了得到新的 uniqueidentifier 值,表必须具有一个指定 NEWID 函数的 DEFAULT 子句,或使用 NEWID 函数的 INSERT 语句:

CREATE TABLE MyUniqueTable(UniqueColumn UNIQUEIDENTIFIER DEFAULT NEWID(),Characters VARCHAR(10) )GOINSERT INTO MyUniqueTable(Characters) VALUES ('abc')INSERT INTO MyUniqueTable VALUES (NEWID(), 'def')GO

以上这篇解决sql server保存对象字符串转换成uniqueidentifier失败的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持真格学网。 您可能感兴趣的文章:SQL server 自增ID--序号自动增加的字段操作SQL Server中identity(自增)的用法详解SqlServer生成连续数字根据指定的数字操作SQL Server 开窗函数 Over()代替游标的使用详解SQL Server中row_number函数的常见用法示例详解SQL Server如何通过创建临时表遍历更新数据详解

不知道这样说你是否满意。我愿意回答你的问题?还有吗?目前对于图像数据的管理大都采用表+实体的方法,即图像数据以文件形式存放于指定的计算机目录下,在数据库表中只反映图像数据文件的存储路径。这种管理模式,给数据的维护增加了难度,同时,也给数据的安全带来一定的隐患。因此,要真正做到各类数据在数据库中安全管理,研究和探索直接将图像数据存储在数据库关系表中的方法是非常必要的。 笔者在Visual Basic 6.0开发环境中,采用客户机/服务器的工作方式,针对SQL Server数据库关系表中存储图像数据的问题进行了初步探讨,提出了一套基本解决方案,供读者参考。 一、 存储图像数据的策略 图像数据库技术一直致力于解决海量数字图像的有效存储和管理问题。它是数据库技术的继承和发展,一方面,图像数据和文本数据存在着本质的区别,在文本数据领域得以成功应用的传统数据库技术,如果一成不变的照搬到图像数据库领域,结果往往是低效,甚至无效;另一方面,传统数据库的许多成果,如SQL语言、索引技术等都值得图像数据库借鉴。上述两个方面的结合成为目前图像数据库技术发展的主流。 1.1 BLOB数据类型 BLOB是非常巨大的不定的二进制或者字符型数据,通常是文档(.txt、.doc)和图片(.jpeg、.gif、.bmp),它可以存储在数据库中。在SQL Server中,BLOB可以是text、ntext或者image数据类型。 Image数据类型存储的是长度不确定的二进制数据,最大长度是2GB。 BLOB数据在SQL Server系统中的存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值,而对于BLOB类型数据,系统开辟新的存储页面来存放这些数据,表中BLOB类型数据字段存放的仅是一个16个字节的指针,该指针指向存放该条记录的BLOB数据的页面。 1.2 BLOB的设计策略 BLOB数据是数据量很大的数据类型,它会占用大量的硬盘空间、内存和网络资源,因此合理地设计包含有BLOB数据类型的属性表,对提高存储效率、查询速度有很大的影响。一般BLOB的设计原则如下: (1) 使用BLOB数据类型还是使用varchar或者varbinary数据类型 二进制大对象并不一定要存储为text、ntext或者image数据类型,它们也可以作为varchar或者varbinary数据类型村处在表格中。数据类型的选择要根据将要存储的BLOB的实际大小。如果数据不会超过8K,那么就使用Varchar或者varbinary数据类型。如果这些大对象的尺寸超过8K,那么就使用text、ntext或者image数据类型。 (2) 存储BLOB在数据库中或者在文件系统中 常见的设计问题是将图片存在数据库中还是存在文件系统中。在大多数情况下,最好把图片文件与其它数据一起存在数据库中。因为将影像数据文件存储在数据库中有许多优点: 易于管理 当BLOB与其他数据一起存储在数据库中时,BLOB和表格是数据一起备份和恢复。这样就降低了表格数据与BLOB数据不同步的机会,而且降低了其他用户无意中删除了文件系统中BLOB数据位置的路径和风险。另外,将数据存储在数据库中BLOB和其他数据的插入、更新和删除都在同一个事务中实现。这样就确保了数据的一致性和文件与数据库之间的一致性。还有一点好处是不需要为文件系统中的文件单独设置安全性。 可伸缩性 尽管文件系统被设计为能够处理大量不同大小的对象,但是文件系统不能对大量小文件进行优化。在这种情况下,数据库系统可以进行优化。 可用性 数据库具有比文件系统更多的可用性。数据库复制允许在分布式环境中复制、分配和潜在的修改数据。在主系统失效的情况下,日志转移提供了保留数据库备用副本的方法。 当然,在某些情况下,将图片存储在文件系统中将是更好的选择: (1)使用图片的应用程序需要数据流性能,例如实时的视频重现。 (2)象Microsoft PhotoDraw或者Adobe Photoshop这样的应用程序经常访问BLOB,这些应用程序只知道怎样访问文件。 (3)需要使用一些NTFS文件系统中的特殊功能,例如远程存储内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • sql server 压缩日志与减少sql server 文件大小的方法
  • sql优化经验总结
  • 实现sql分页的存储过程代码
  • mysql删除和更新操作对性能有影响吗
  • sql server误区30日谈 第14天 清除日志后会将相关的lsn填零初始化
  • sql服务器无法启动的解决方法
  • sql 语句中的 null值
  • 利用sql server数据库邮件服务实现监控和预警
  • sqlite之autoincrement关键字(自动递增)
  • mysql与mssql的md5加密语句
  • SQL Server如何存储图像数据
  • sql server 2005 中新建一个存储过程怎么保存啊??
  • sql server中导出的数据默认保存在哪个文件夹?
  • SQL server2005 中.保存图片用什么类型?
  • SQL server2000怎样存储图片数据?
  • sql server存储过程如何输出结果集
  • sql server 2008存储过程怎么保存的时候怎么保存到文件夹,而不...
  • SQL server 2008里面创建新表并保存之后,为什么不能对原有的...
  • 如何修改sql server 2005数据库系统日志保存路径
  • 我想在SQL Server 2008中存储图片 音乐等多媒体信息 请问要...
  • 怎样解决sql server 数据库的并发问题?
  • 如何修改sql server 2005数据库系统日志保存路径 ?
  • SQL server2005如何存储文章,图片
  • SQL server 2008为什么表保存之后就不可以修改数据类型?
  • 简单的SQL server 存储过程的SQL语句拼接问题,请教下达人!
  • sql server 存储过程返回结果集存入临时表
  • sqlserver2005数据库存储的时间格式问题,急~~~~~在线等~~
  • sqlserver2005 数据库分离后保存在哪个文件夹里面?分离出来找...
  • sql server 948错误如何解决
  • SQL server 2008为什么表保存之后就不可以修改数据类型?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页sql server 自增id--序号自动增加的字段操作sql server中identity(自增)的用法详解sqlserver生成连续数字根据指定的数字操作sql server 开窗函数 over()代替游标的使用详解sql server中row_number函数的常见用法示例详解sql server如何通过创建临时表遍历更新数据详解sql server 压缩日志与减少sql server 文件大小的方法sql优化经验总结实现sql分页的存储过程代码mysql删除和更新操作对性能有影响吗sql server误区30日谈 第14天 清除日志后会将相关的lsn填零初始化sql服务器无法启动的解决方法sql 语句中的 null值利用sql server数据库邮件服务实现监控和预警sqlite之autoincrement关键字(自动递增)mysql与mssql的md5加密语句sql server 2012 安装图解教程(附sql server数据库入门学习总结microsoft sql server 2012 数据win7系统安装sqlserver2000的详细sql重复记录查询的几种方法sqlserver中distinct的用法(不重sql server错误代码大全及解释(sql-order by 多字段排序(升序、sql将一个表中的数据插入到另一个用sql语句添加删除修改字段、一些sql server使用merge语句当源表数据集为空利用sql server数据库邮件服务实现监控和plsql连接oracle数据库过程图解sql 实现某时间段的统计业务sql server 中查看sql句子执行所用的时间sql server 临时表 查找并删除的实现代码删除重复记录,并且剩下一条在安装了sql2000的基础上安装sql2005的详sql server解析xml数据的方法详解sqlserver性能调优经验总结
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved