小编IMT*_*Man的帖子

浮动到 varchar 没有尾随零

我有一段时间试图将FLOAT(53)字段转换VARCHAR为没有尾随零或科学记数法的字段。

该字段可能有一个非常大或非常小的数字。我需要将其转换为 VARCHAR 并最多显示小数点后 5 位但没有尾随零。所以 123.456789 应该是 123.45678,123456.78 应该是 123456.78。

我有一个 SQL Fiddle 显示我尝试过的内容:http ://sqlfiddle.com/#!6/bd392/4

sql-server varchar cast sql-server-2014

3
推荐指数
1
解决办法
5453
查看次数

无法确定元数据,因为存储过程包含动态 SQL

我有一个包含一些动态 SQL 的存储过程。我正在尝试使用执行存储过程,OPENROWSET但出现错误:

消息 11514,级别 16,状态 1,过程 sp_describe_first_result_set,第 1 行

无法确定元数据,因为语句 'EXEC sp_executesql @SQL, N'@row_count_out INT OUTPUT', @row_count_out = @row_count_table OUTPUT;' 在过程 'nachoTest' 中包含动态 SQL。考虑使用 WITH RESULT SETS 子句来显式描述结果集。

我真正的存储过程有点复杂,但这是错误的一个工作示例:

存储过程:

CREATE PROCEDURE nachoTest  @table_name NVARCHAR(MAX)
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @row_count_table INT
    DECLARE @SQL NVARCHAR(MAX)

    SET @SQL = N'SELECT @row_count_out = COUNT(*) FROM ' + @table_name
    EXEC sp_executesql @SQL, N'@row_count_out INT OUTPUT', @row_count_out = @row_count_table OUTPUT;

    SELECT @row_count_table AS row_count, @table_name AS table_name
END
GO
Run Code Online (Sandbox Code Playgroud)

调用它 …

sql-server stored-procedures dynamic-sql openrowset sql-server-2014

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