我需要能够为SQL Server 2008中的现有表获取CREATE脚本.我假设我可以通过以某种方式查询sys.tables来执行此操作,但是这不会返回给我CREATE脚本数据.
我是SQL Server的新手.我通过SQL Server Management Studio登录到我的数据库.
我有一个存储过程列表.如何查看存储过程代码?
右键单击存储过程没有任何选项view contents of stored procedure.
谢谢.
如何在SQL Server Management Studio中获取行的完整内容?
如果使用"结果到网格",数据将被编码,因此会丢失换行符等内容.如果您执行"结果到文件"或"结果到文本",则文本限制为8192个字符.
注意:我有解决方案,但我使用SO来记录这个.如果您有更好的答案,请随意发布.
我正在使用几个内存表来缓存我网站的数据.这是我的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)变量的最大大小
我有一varbinary(max)列将图像存储在 SQL 数据库中。
我正在处理一个 newdb 脚本,其中一个应用程序创建了一个新的 db 实例并填充了一些表。我正在处理的表之一是初始化该图像列。
为此,我使用 select 语句打印了列的内容,并将内容粘贴到 newdb 脚本的 insert 语句中。这最初似乎有效,但图像未正确加载。
所以我比较了DATALENTH()原始数据(5469988)和新数据(21839)的。看来 Microsoft SQL Server management Studio - 2014 切断了数据,为什么我在某个时候从原始数据库复制了它。我需要能够获得该列的全部内容。有任何想法吗?
我使用 SQL Server 数据库来存储很长的 Unicode 字符串。该字段来自类型“ntext”,理论上应限制为 2^30 个 Unicode 字符。
从MSDN 文档:
正文
可变长度 Unicode 数据,最大字符串长度为 2^30 - 1 (1,073,741,823) 字节。存储大小(以字节为单位)是输入的字符串长度的两倍。ntext 的 ISO 同义词是国家文本。
我做了这个测试:
生成 50,000 个字符的字符串。
运行更新 SQL 语句
UPDATE [table] SET Response='... 50,000 个字符串...' WHERE ID='593BCBC0-EC1E-4850-93B0-3A9A9EB83123'
检查结果 - 最后实际存储在字段中的内容。
结果是字段 [Response]仅包含43,679 个字符。字符串末尾的所有字符都被丢弃了。
为什么会发生这种情况?我该如何解决这个问题?
如果这真的是这种数据类型(ntext)的容量限制,还有哪一种数据类型可以存储更长的Unicode字符串?
sql-server ×6
sql ×4
ssms ×2
t-sql ×2
ntext ×1
php ×1
sql-update ×1
varbinary ×1
varbinarymax ×1
varchar ×1