SQL Server 2008 带的 Management Studio 生成脚本功能已经支持编写数据的脚本了,但是 2008 R2 里面找了半天没找到编写数据脚本的选项,后来仔细一看,原来藏这里了。

相对于 2008 来说,更加了灵活了。想生成啥就生成啥。
本日志由 Loveyuki 于 2010-07-14 09:25 发表到 学习笔记 中,目前已经被浏览 390 次,评论 6 次;
作者添加了以下标签: SQL Server;
前两天我发了一个使用 CTE 分割字符串的方法,效率虽然比旧的 CHARINDEX 高一些,但是比起 CLR 速度还是差了很多,今天我就发下使用 CLR 来分割字符串的方法
- public class UserFunction
- {
- [SqlFunction(Name = "CLR_SplitStringToIntTable", TableDefinition = "Id INT", FillRowMethodName = "FillRow")]
- public static IEnumerable SplitStringToIntTable(SqlString str)
- {
- return str.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- }
- public static void FillRow(object row, out int id)
- {
- id = Convert.ToInt32((string)row);
- }
- }
把上面的 C# 代码编译后放到 SQL 服务器,然后到 SQL 管理器里面建立程序集,再建立一个新的函数
- CREATE FUNCTION CLR_SplitStringToIntTable
- (
- @Str NVARCHAR(MAX)
- )
- RETURNS TABLE (Id INT)
- AS EXTERNAL NAME SQLServerCLR.UserFunction.SplitStringToIntTable;
- GO
效率对比我就不贴了,我这里提高的速度可不是一点。
本日志由 Loveyuki 于 2010-06-03 11:33 发表到 学习笔记 中,目前已经被浏览 616 次,评论 5 次;
作者添加了以下标签: SQL Server;
记录一下,效率比旧的字符串分割效率高
- ALTER FUNCTION [dbo].[UF_SpliteIntToTable]
- (
- @String VARCHAR(8000)
- )
- RETURNS @Table TABLE (Id INT)
- AS
- BEGIN
- DECLARE @SpliteChar AS CHAR(1) = ',';
- WITH TempTable AS
- (
- SELECT CAST(SUBSTRING(@String,1,CHARINDEX(@SpliteChar,@String,1) - 1) AS INT) AS item,
- SUBSTRING(@String,CHARINDEX(@SpliteChar,@String,1) + 1, LEN(@String)) + @SpliteChar AS list
- UNION ALL
- SELECT CAST(SUBSTRING(list,1,CHARINDEX(@SpliteChar,list,1) - 1) AS INT) AS item,
- SUBSTRING(list,CHARINDEX(@SpliteChar,list,1) + 1, LEN(list)) AS list
- FROM TempTable
- WHERE LEN(TempTable.list) > 0
- )
- INSERT INTO @Table SELECT item FROM TempTable WHERE item > 0
- RETURN
- END
本日志由 Loveyuki 于 2010-05-28 16:15 发表到 学习笔记 中,目前已经被浏览 579 次,评论 3 次;
作者添加了以下标签: SQL Server;
图片文件导入数据库用:
- INSERT INTO tblFiles(blob)
- SELECT * FROM OPENROWSET(BULK 'D:\BakFile\sfile\1.png', SINGLE_BLOB)
- AS tmpImage
数据库字段导出图片文件用:
- SET @sql = 'bcp '
- SET @sql = @sql + '"SELECT blob FROM SomeTestDB.dbo.tblFiles WHERE id= 1"'
- SET @sql = @sql + ' queryout '
- SET @sql = @sql + '"D:\BakFile\tfile\1.png"'
- SET @sql = @sql + ' -T -f D:\BakFile\tfile\bcp.fmt -S'
- exec master..xp_cmdshell @sql
bcp.fmt 文件可以自动生成后进行定制修改:
- SET @sql ='bcp SomeTestDB.dbo.tblFiles format nul -T -N -f D:\BakFile\tfile\bcp.fmt'
- exec master..xp_cmdshell @sql
生成的文件如下:
- 10.0
- 2
- 1 SQLINT 0 4 "" 1 id ""
- 2 SQLIMAGE 4 0 "" 2 blob ""
因为我们只导出 blob 字段为图片文件,所以修改为:
- 10.0
- 1
- 1 SQLIMAGE 0 0 "" 1 blob ""
具体大家可以看 MSDN 文档
本日志由 Loveyuki 于 2010-04-09 17:19 发表到 学习笔记 中,目前已经被浏览 789 次,评论 0 次;
作者添加了以下标签: SQL Server;
以前有朋友反馈过在 Mono 下无法运行 Bitrac,这两天测试 Bitrac 的兼容性的时候顺便也测试了一下 Bitrac 在 Mono 下的表现,系统嘛还是选择我最喜欢的 Archlinux,Web 服务器就用 Lighttpd 了,用 FastCGI-Mono-Server 来跑 Bitrac,服务器的配置方法,我去年年初就发过了,这里就不再累赘。
装好服务器,传好 Bitrac,运行,哦也,错误。SQLite 库不行,到他主页一看哦,应该用可管理的那个库,而不是集成的库,换,再运行还是错误,这次是路径有错误了,唉,不规范代码害死人了,把所有不规范的代码都换了,然后把权限设置好,哈哈,成功运行,不过速度好慢啊,第一次启动时间竟然需要 3 秒,稳定运行后,每个页面都要 50 毫秒左右,性能比 IIS 下面要低两倍。看来用 Linux 跑 .NET 的应用还是很不现实啊。
另外就是 SQLite 数据库连接字符串的 Pooling=True 问题了,发现打开这个以后,会造成数据库文件被锁定,很容易出现错误,虽然开启那个选项可以提高两毫秒的速度,但是为了稳定性,还是关闭了吧。下个版本很快发布,到时候有兴趣和条件的朋友可以试试在 Mono 下跑 Bitrac 了。呵呵
另外就是有些朋友的主机无法运行自动运行程序,我考虑在自动更新功能里面加入本地自动更新功能,就是你在我这里下载自动更新包以后上传到你的服务器更新,一切为了方便嘛,哈哈。
来看看有更新没
因为这个博客系统yahoo google都收录很好 才想说admin能不能做个
垃圾评论没啥好办法,要不就是更新关键字列表勤快点,要不就把评论
草泥马,山西网通赚钱不要脸!!!
最近貌似总有垃圾评论被发上来,博主考虑解决下。
我之前也遇到了这个情况,好像是由于数据库没有写权限的原因,加了
太感谢你了,我先去鼓捣鼓捣
安装了blog程序,可是一直登录后台出现验证码错误的问题,不知为何
啥CMD命令啊。分享下!
为什么用谷歌浏览器。点订阅的时候,出现了一推代码呢。
版权所有©2005-2010 | 系统:Bitrac | 模版:BtTheme | 图标:Led Icon Set | 空间域名:易联网络,光辉互联 | 晋ICP备09006899号