相关疑难解决方法(0)

使用Query为现有表生成SQL创建脚本

我需要能够为SQL Server 2008中的现有表获取CREATE脚本.我假设我可以通过以某种方式查询sys.tables来执行此操作,但是这不会返回给我CREATE脚本数据.

sql t-sql sql-server

59
推荐指数
5
解决办法
13万
查看次数

如何在SQL Server Management Studio中查看存储过程代码

我是SQL Server的新手.我通过SQL Server Management Studio登录到我的数据库.

我有一个存储过程列表.如何查看存储过程代码?

右键单击存储过程没有任何选项view contents of stored procedure.

谢谢.

t-sql sql-server ssms

57
推荐指数
7
解决办法
19万
查看次数

如何从SSMS获取完整的结果集

如何在SQL Server Management Studio中获取行的完整内容?

如果使用"结果到网格",数据将被编码,因此会丢失换行符等内容.如果您执行"结果到文件"或"结果到文本",则文本限制为8192个字符.

注意:我有解决方案,但我使用SO来记录这个.如果您有更好的答案,请随意发布.

sql sql-server

19
推荐指数
4
解决办法
6959
查看次数

为什么SQL Server选择查询truncate varchar string?

建立

我正在使用几个内存表来缓存我网站的数据.这是我的mac上的本地web主机和linux上的dev服务器,使用php 5.5上的mssql php库

简化表格如下:

CacheID INT NOT NULL
CacheData VARCHAR(MAX)
Run Code Online (Sandbox Code Playgroud)

我偶尔会插入几个大值.10,000多个字符.插件工作正常.一个简单的查询告诉我所有数据都在字段中:

SELECT
  CacheID,
  LEN(CacheData)
FROM Caches
Run Code Online (Sandbox Code Playgroud)

问题

但是,当我实际选择数据时,该cache列总是被截断为8192个字符,从而导致出现问题.简单选择:

SELECT
  CacheData
FROM Caches
WHERE CacheID = 10
Run Code Online (Sandbox Code Playgroud)

我检查了varchar(max)字符限制.它远远超过8192.2^32 - 1

这个问题

为什么数据被截断?

另一种形式的问题.我实际上遇到了这个agian而忘记了这个解决方案.当我忘记根本原因时,请记住我.这是我搜索认为SQL Server是罪魁祸首.

什么是SQL Servers Varchar(MAX)最大长度? - 如果你的值被截断它可能是由php非sql server引起的.如果您只想知道最大值是什么,这里回答的问题是:varchar(max)变量的最大大小

php sql-server varchar

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

如何提取 varbinary(max) 列的值?

我有一varbinary(max)列将图像存储在 SQL 数据库中。

我正在处理一个 newdb 脚本,其中一个应用程序创建了一个新的 db 实例并填充了一些表。我正在处理的表之一是初始化该图像列。

为此,我使用 select 语句打印了列的内容,并将内容粘贴到 newdb 脚本的 insert 语句中。这最初似乎有效,但图像未正确加载。

所以我比较了DATALENTH()原始数据(5469988)和新数据(21839)的。看来 Microsoft SQL Server management Studio - 2014 切断了数据,为什么我在某个时候从原始数据库复制了它。我需要能够获得该列的全部内容。有任何想法吗?

sql sql-server ssms varbinary varbinarymax

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

SQL Server NText 字段限制为 43,679 个字符?

我使用 SQL Server 数据库来存储很长的 Unicode 字符串。该字段来自类型“ntext”,理论上应限制为 2^30 个 Unicode 字符。

MSDN 文档

正文

可变长度 Unicode 数据,最大字符串长度为 2^30 - 1 (1,073,741,823) 字节。存储大小(以字节为单位)是输入的字符串长度的两倍。ntext 的 ISO 同义词是国家文本。

我做了这个测试:

  1. 生成 50,000 个字符的字符串。

  2. 运行更新 SQL 语句

    UPDATE [table] SET Response='... 50,000 个字符串...' WHERE ID='593BCBC0-EC1E-4850-93B0-3A9A9EB83123'

  3. 检查结果 - 最后实际存储在字段中的内容。

结果是字段 [Response]包含43,679 个字符。字符串末尾的所有字符都被丢弃了。

为什么会发生这种情况?我该如何解决这个问题?

如果这真的是这种数据类型(ntext)的容量限制,还有哪一种数据类型可以存储更长的Unicode字符串?

sql sql-server ntext sql-update

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

标签 统计

sql-server ×6

sql ×4

ssms ×2

t-sql ×2

ntext ×1

php ×1

sql-update ×1

varbinary ×1

varbinarymax ×1

varchar ×1